24 #ifndef NMODL_AST_NODE_HPP 25 #define NMODL_AST_NODE_HPP 49 virtual ~Node() =
default;
57 bool is_node() const noexcept
override {
return true; }
107 return std::static_pointer_cast<
Node>(shared_from_this());
114 return std::static_pointer_cast<
const Node>(shared_from_this());
174 #endif // !NMODL_AST_NODE_HPP 175 #ifndef NMODL_AST_STATEMENT_HPP 176 #define NMODL_AST_STATEMENT_HPP 256 return std::static_pointer_cast<
Statement>(shared_from_this());
263 return std::static_pointer_cast<
const Statement>(shared_from_this());
323 #endif // !NMODL_AST_STATEMENT_HPP 324 #ifndef NMODL_AST_EXPRESSION_HPP 325 #define NMODL_AST_EXPRESSION_HPP 410 return std::static_pointer_cast<
Expression>(shared_from_this());
417 return std::static_pointer_cast<
const Expression>(shared_from_this());
477 #endif // !NMODL_AST_EXPRESSION_HPP 478 #ifndef NMODL_AST_BLOCK_HPP 479 #define NMODL_AST_BLOCK_HPP 504 virtual ~
Block() =
default;
512 throw std::runtime_error(
"get_parameters not implemented");
521 bool is_block() const noexcept
override {
return true; }
571 return std::static_pointer_cast<
Block>(shared_from_this());
578 return std::static_pointer_cast<
const Block>(shared_from_this());
638 #endif // !NMODL_AST_BLOCK_HPP 639 #ifndef NMODL_AST_IDENTIFIER_HPP 640 #define NMODL_AST_IDENTIFIER_HPP 724 return std::static_pointer_cast<
Identifier>(shared_from_this());
731 return std::static_pointer_cast<
const Identifier>(shared_from_this());
791 #endif // !NMODL_AST_IDENTIFIER_HPP 792 #ifndef NMODL_AST_NUMBER_HPP 793 #define NMODL_AST_NUMBER_HPP 817 virtual ~
Number() =
default;
825 throw std::runtime_error(
"to_double not implemented");
834 bool is_number() const noexcept
override {
return true; }
884 return std::static_pointer_cast<
Number>(shared_from_this());
891 return std::static_pointer_cast<
const Number>(shared_from_this());
951 #endif // !NMODL_AST_NUMBER_HPP 952 #ifndef NMODL_AST_STRING_HPP 953 #define NMODL_AST_STRING_HPP 994 explicit String(
const std::string &value);
999 virtual ~
String() =
default;
1055 return std::static_pointer_cast<
String>(shared_from_this());
1062 return std::static_pointer_cast<
const String>(shared_from_this());
1080 const std::string &
get_value() const noexcept {
return value; }
1091 token = std::make_shared<ModToken>(tok);
1098 void set(std::string _value) { value = _value; }
1103 void set_value(std::string value);
1166 std::string
eval()
const {
return value; }
1176 void set_parent_in_children();
1183 #endif // !NMODL_AST_STRING_HPP 1184 #ifndef NMODL_AST_INTEGER_HPP 1185 #define NMODL_AST_INTEGER_HPP 1226 explicit Integer(
int value,
const std::shared_ptr<Name> ¯o);
1287 return std::static_pointer_cast<
Integer>(shared_from_this());
1294 return std::static_pointer_cast<
const Integer>(shared_from_this());
1317 const std::shared_ptr<Name> &
get_macro() const noexcept {
return macro; }
1328 token = std::make_shared<ModToken>(tok);
1335 void set(
int _value) { value = _value; }
1340 void set_value(
int value);
1345 void set_macro(std::shared_ptr<Name> &¯o);
1350 void set_macro(
const std::shared_ptr<Name> ¯o);
1437 void set_parent_in_children();
1444 #endif // !NMODL_AST_INTEGER_HPP 1445 #ifndef NMODL_AST_FLOAT_HPP 1446 #define NMODL_AST_FLOAT_HPP 1481 explicit Float(
const std::string &value);
1484 virtual ~
Float() =
default;
1492 bool is_float() const noexcept
override {
return true; }
1540 return std::static_pointer_cast<
Float>(shared_from_this());
1547 return std::static_pointer_cast<
const Float>(shared_from_this());
1565 const std::string &
get_value() const noexcept {
return value; }
1576 token = std::make_shared<ModToken>(tok);
1583 void set(std::string _value) { value = _value; }
1588 void set_value(std::string value);
1649 void negate()
override { value = value.insert(0, 1,
'-'); }
1665 std::string
eval()
const {
return value; }
1675 void set_parent_in_children();
1682 #endif // !NMODL_AST_FLOAT_HPP 1683 #ifndef NMODL_AST_DOUBLE_HPP 1684 #define NMODL_AST_DOUBLE_HPP 1726 explicit Double(
const std::string &value);
1731 virtual ~
Double() =
default;
1787 return std::static_pointer_cast<
Double>(shared_from_this());
1794 return std::static_pointer_cast<
const Double>(shared_from_this());
1812 const std::string &
get_value() const noexcept {
return value; }
1823 token = std::make_shared<ModToken>(tok);
1830 void set(std::string _value) { value = _value; }
1835 void set_value(std::string value);
1896 void negate()
override { value = value.insert(0, 1,
'-'); }
1912 std::string
eval()
const {
return value; }
1922 void set_parent_in_children();
1929 #endif // !NMODL_AST_DOUBLE_HPP 1930 #ifndef NMODL_AST_BOOLEAN_HPP 1931 #define NMODL_AST_BOOLEAN_HPP 2022 return std::static_pointer_cast<
Boolean>(shared_from_this());
2029 return std::static_pointer_cast<
const Boolean>(shared_from_this());
2058 token = std::make_shared<ModToken>(tok);
2065 void set(
bool _value) { value = _value; }
2070 void set_value(
int value);
2147 bool eval()
const {
return value; }
2157 void set_parent_in_children();
2164 #endif // !NMODL_AST_BOOLEAN_HPP 2165 #ifndef NMODL_AST_NAME_HPP 2166 #define NMODL_AST_NAME_HPP 2202 explicit Name(
const std::shared_ptr<String> &value);
2207 virtual ~
Name() =
default;
2215 bool is_name() const noexcept
override {
return true; }
2263 return std::static_pointer_cast<
Name>(shared_from_this());
2270 return std::static_pointer_cast<
const Name>(shared_from_this());
2301 const std::shared_ptr<String> &
get_value() const noexcept {
return value; }
2317 void set_name(
const std::string &name)
override;
2323 token = std::make_shared<ModToken>(tok);
2329 void set_value(std::shared_ptr<String> &&value);
2334 void set_value(
const std::shared_ptr<String> &value);
2396 void set_parent_in_children();
2403 #endif // !NMODL_AST_NAME_HPP 2404 #ifndef NMODL_AST_PRIME_NAME_HPP 2405 #define NMODL_AST_PRIME_NAME_HPP 2445 explicit PrimeName(
const std::shared_ptr<String> &value,
2446 const std::shared_ptr<Integer> &order);
2509 return std::static_pointer_cast<
PrimeName>(shared_from_this());
2516 return std::static_pointer_cast<
const PrimeName>(shared_from_this());
2547 const std::shared_ptr<String> &
get_value() const noexcept {
return value; }
2552 const std::shared_ptr<Integer> &
get_order() const noexcept {
return order; }
2563 token = std::make_shared<ModToken>(tok);
2569 void set_value(std::shared_ptr<String> &&value);
2574 void set_value(
const std::shared_ptr<String> &value);
2579 void set_order(std::shared_ptr<Integer> &&order);
2584 void set_order(
const std::shared_ptr<Integer> &order);
2646 void set_parent_in_children();
2653 #endif // !NMODL_AST_PRIME_NAME_HPP 2654 #ifndef NMODL_AST_INDEXED_NAME_HPP 2655 #define NMODL_AST_INDEXED_NAME_HPP 2695 explicit IndexedName(
const std::shared_ptr<Identifier> &name,
2696 const std::shared_ptr<Expression> &length);
2750 return "IndexedName";
2757 return std::static_pointer_cast<
IndexedName>(shared_from_this());
2764 return std::static_pointer_cast<
const IndexedName>(shared_from_this());
2795 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
2813 token = std::make_shared<ModToken>(tok);
2819 void set_name(std::shared_ptr<Identifier> &&name);
2824 void set_name(
const std::shared_ptr<Identifier> &name);
2830 void set_length(std::shared_ptr<Expression> &&length);
2835 void set_length(
const std::shared_ptr<Expression> &length);
2897 void set_parent_in_children();
2904 #endif // !NMODL_AST_INDEXED_NAME_HPP 2905 #ifndef NMODL_AST_VAR_NAME_HPP 2906 #define NMODL_AST_VAR_NAME_HPP 2932 std::shared_ptr<Integer>
at;
2943 explicit VarName(
const std::shared_ptr<Identifier> &name,
2944 const std::shared_ptr<Integer> &at,
2945 const std::shared_ptr<Expression> &index);
3004 return std::static_pointer_cast<
VarName>(shared_from_this());
3011 return std::static_pointer_cast<
const VarName>(shared_from_this());
3042 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
3047 const std::shared_ptr<Integer> &
get_at() const noexcept {
return at; }
3052 const std::shared_ptr<Expression> &
get_index() const noexcept {
3065 token = std::make_shared<ModToken>(tok);
3071 void set_name(std::shared_ptr<Identifier> &&name);
3076 void set_name(
const std::shared_ptr<Identifier> &name);
3081 void set_at(std::shared_ptr<Integer> &&at);
3086 void set_at(
const std::shared_ptr<Integer> &at);
3091 void set_index(std::shared_ptr<Expression> &&index);
3096 void set_index(
const std::shared_ptr<Expression> &index);
3158 void set_parent_in_children();
3165 #endif // !NMODL_AST_VAR_NAME_HPP 3166 #ifndef NMODL_AST_ARGUMENT_HPP 3167 #define NMODL_AST_ARGUMENT_HPP 3207 explicit Argument(
const std::shared_ptr<Identifier> &name,
3208 const std::shared_ptr<Unit> &unit);
3269 return std::static_pointer_cast<
Argument>(shared_from_this());
3276 return std::static_pointer_cast<
const Argument>(shared_from_this());
3307 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
3312 const std::shared_ptr<Unit> &
get_unit() const noexcept {
return unit; }
3323 token = std::make_shared<ModToken>(tok);
3329 void set_name(std::shared_ptr<Identifier> &&name);
3334 void set_name(
const std::shared_ptr<Identifier> &name);
3339 void set_unit(std::shared_ptr<Unit> &&unit);
3344 void set_unit(
const std::shared_ptr<Unit> &unit);
3406 void set_parent_in_children();
3413 #endif // !NMODL_AST_ARGUMENT_HPP 3414 #ifndef NMODL_AST_REACT_VAR_NAME_HPP 3415 #define NMODL_AST_REACT_VAR_NAME_HPP 3445 explicit ReactVarName(
const std::shared_ptr<Integer> &value,
3446 const std::shared_ptr<VarName> &name);
3500 return "ReactVarName";
3507 return std::static_pointer_cast<
ReactVarName>(shared_from_this());
3514 return std::static_pointer_cast<
const ReactVarName>(shared_from_this());
3532 const std::shared_ptr<Integer> &
get_value() const noexcept {
return value; }
3550 const std::shared_ptr<VarName> &
get_name() const noexcept {
return name; }
3561 token = std::make_shared<ModToken>(tok);
3568 void set_value(std::shared_ptr<Integer> &&value);
3573 void set_value(
const std::shared_ptr<Integer> &value);
3578 void set_name(std::shared_ptr<VarName> &&name);
3583 void set_name(
const std::shared_ptr<VarName> &name);
3645 void set_parent_in_children();
3652 #endif // !NMODL_AST_REACT_VAR_NAME_HPP 3653 #ifndef NMODL_AST_READ_ION_VAR_HPP 3654 #define NMODL_AST_READ_ION_VAR_HPP 3682 explicit ReadIonVar(
const std::shared_ptr<Name> &name);
3736 return "ReadIonVar";
3743 return std::static_pointer_cast<
ReadIonVar>(shared_from_this());
3750 return std::static_pointer_cast<
const ReadIonVar>(shared_from_this());
3781 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
3792 token = std::make_shared<ModToken>(tok);
3798 void set_name(std::shared_ptr<Name> &&name);
3803 void set_name(
const std::shared_ptr<Name> &name);
3865 void set_parent_in_children();
3872 #endif // !NMODL_AST_READ_ION_VAR_HPP 3873 #ifndef NMODL_AST_WRITE_ION_VAR_HPP 3874 #define NMODL_AST_WRITE_ION_VAR_HPP 3902 explicit WriteIonVar(
const std::shared_ptr<Name> &name);
3956 return "WriteIonVar";
3963 return std::static_pointer_cast<
WriteIonVar>(shared_from_this());
3970 return std::static_pointer_cast<
const WriteIonVar>(shared_from_this());
4001 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
4012 token = std::make_shared<ModToken>(tok);
4018 void set_name(std::shared_ptr<Name> &&name);
4023 void set_name(
const std::shared_ptr<Name> &name);
4085 void set_parent_in_children();
4092 #endif // !NMODL_AST_WRITE_ION_VAR_HPP 4093 #ifndef NMODL_AST_NONSPECIFIC_CUR_VAR_HPP 4094 #define NMODL_AST_NONSPECIFIC_CUR_VAR_HPP 4178 return "NonspecificCurVar";
4193 shared_from_this());
4224 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
4235 token = std::make_shared<ModToken>(tok);
4242 void set_name(std::shared_ptr<Name> &&name);
4247 void set_name(
const std::shared_ptr<Name> &name);
4309 void set_parent_in_children();
4316 #endif // !NMODL_AST_NONSPECIFIC_CUR_VAR_HPP 4317 #ifndef NMODL_AST_ELECTRODE_CUR_VAR_HPP 4318 #define NMODL_AST_ELECTRODE_CUR_VAR_HPP 4400 return "ElectrodeCurVar";
4414 return std::static_pointer_cast<
const ElectrodeCurVar>(shared_from_this());
4445 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
4456 token = std::make_shared<ModToken>(tok);
4463 void set_name(std::shared_ptr<Name> &&name);
4468 void set_name(
const std::shared_ptr<Name> &name);
4530 void set_parent_in_children();
4537 #endif // !NMODL_AST_ELECTRODE_CUR_VAR_HPP 4538 #ifndef NMODL_AST_SECTION_VAR_HPP 4539 #define NMODL_AST_SECTION_VAR_HPP 4567 explicit SectionVar(
const std::shared_ptr<Name> &name);
4621 return "SectionVar";
4628 return std::static_pointer_cast<
SectionVar>(shared_from_this());
4635 return std::static_pointer_cast<
const SectionVar>(shared_from_this());
4666 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
4677 token = std::make_shared<ModToken>(tok);
4683 void set_name(std::shared_ptr<Name> &&name);
4688 void set_name(
const std::shared_ptr<Name> &name);
4750 void set_parent_in_children();
4757 #endif // !NMODL_AST_SECTION_VAR_HPP 4758 #ifndef NMODL_AST_RANGE_VAR_HPP 4759 #define NMODL_AST_RANGE_VAR_HPP 4787 explicit RangeVar(
const std::shared_ptr<Name> &name);
4848 return std::static_pointer_cast<
RangeVar>(shared_from_this());
4855 return std::static_pointer_cast<
const RangeVar>(shared_from_this());
4886 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
4897 token = std::make_shared<ModToken>(tok);
4903 void set_name(std::shared_ptr<Name> &&name);
4908 void set_name(
const std::shared_ptr<Name> &name);
4970 void set_parent_in_children();
4977 #endif // !NMODL_AST_RANGE_VAR_HPP 4978 #ifndef NMODL_AST_GLOBAL_VAR_HPP 4979 #define NMODL_AST_GLOBAL_VAR_HPP 5007 explicit GlobalVar(
const std::shared_ptr<Name> &name);
5068 return std::static_pointer_cast<
GlobalVar>(shared_from_this());
5075 return std::static_pointer_cast<
const GlobalVar>(shared_from_this());
5106 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
5117 token = std::make_shared<ModToken>(tok);
5123 void set_name(std::shared_ptr<Name> &&name);
5128 void set_name(
const std::shared_ptr<Name> &name);
5190 void set_parent_in_children();
5197 #endif // !NMODL_AST_GLOBAL_VAR_HPP 5198 #ifndef NMODL_AST_POINTER_VAR_HPP 5199 #define NMODL_AST_POINTER_VAR_HPP 5227 explicit PointerVar(
const std::shared_ptr<Name> &name);
5281 return "PointerVar";
5288 return std::static_pointer_cast<
PointerVar>(shared_from_this());
5295 return std::static_pointer_cast<
const PointerVar>(shared_from_this());
5326 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
5337 token = std::make_shared<ModToken>(tok);
5343 void set_name(std::shared_ptr<Name> &&name);
5348 void set_name(
const std::shared_ptr<Name> &name);
5410 void set_parent_in_children();
5417 #endif // !NMODL_AST_POINTER_VAR_HPP 5418 #ifndef NMODL_AST_BBCORE_POINTER_VAR_HPP 5419 #define NMODL_AST_BBCORE_POINTER_VAR_HPP 5504 return "BbcorePointerVar";
5518 return std::static_pointer_cast<
const BbcorePointerVar>(shared_from_this());
5549 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
5560 token = std::make_shared<ModToken>(tok);
5567 void set_name(std::shared_ptr<Name> &&name);
5572 void set_name(
const std::shared_ptr<Name> &name);
5634 void set_parent_in_children();
5641 #endif // !NMODL_AST_BBCORE_POINTER_VAR_HPP 5642 #ifndef NMODL_AST_EXTERN_VAR_HPP 5643 #define NMODL_AST_EXTERN_VAR_HPP 5671 explicit ExternVar(
const std::shared_ptr<Name> &name);
5732 return std::static_pointer_cast<
ExternVar>(shared_from_this());
5739 return std::static_pointer_cast<
const ExternVar>(shared_from_this());
5770 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
5781 token = std::make_shared<ModToken>(tok);
5787 void set_name(std::shared_ptr<Name> &&name);
5792 void set_name(
const std::shared_ptr<Name> &name);
5854 void set_parent_in_children();
5861 #endif // !NMODL_AST_EXTERN_VAR_HPP 5862 #ifndef NMODL_AST_THREADSAFE_VAR_HPP 5863 #define NMODL_AST_THREADSAFE_VAR_HPP 5945 return "ThreadsafeVar";
5952 return std::static_pointer_cast<
ThreadsafeVar>(shared_from_this());
5959 return std::static_pointer_cast<
const ThreadsafeVar>(shared_from_this());
5990 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
6001 token = std::make_shared<ModToken>(tok);
6008 void set_name(std::shared_ptr<Name> &&name);
6013 void set_name(
const std::shared_ptr<Name> &name);
6075 void set_parent_in_children();
6082 #endif // !NMODL_AST_THREADSAFE_VAR_HPP 6083 #ifndef NMODL_AST_PARAM_BLOCK_HPP 6084 #define NMODL_AST_PARAM_BLOCK_HPP 6181 return "ParamBlock";
6201 return std::static_pointer_cast<
ParamBlock>(shared_from_this());
6208 return std::static_pointer_cast<
const ParamBlock>(shared_from_this());
6252 token = std::make_shared<ModToken>(tok);
6339 void set_parent_in_children();
6346 #endif // !NMODL_AST_PARAM_BLOCK_HPP 6347 #ifndef NMODL_AST_STEP_BLOCK_HPP 6348 #define NMODL_AST_STEP_BLOCK_HPP 6461 return std::static_pointer_cast<
StepBlock>(shared_from_this());
6468 return std::static_pointer_cast<
const StepBlock>(shared_from_this());
6510 token = std::make_shared<ModToken>(tok);
6597 void set_parent_in_children();
6604 #endif // !NMODL_AST_STEP_BLOCK_HPP 6605 #ifndef NMODL_AST_INDEPENDENT_BLOCK_HPP 6606 #define NMODL_AST_INDEPENDENT_BLOCK_HPP 6698 return "IndependentBlock";
6713 return "INDEPENDENT ";
6727 return std::static_pointer_cast<
const IndependentBlock>(shared_from_this());
6771 token = std::make_shared<ModToken>(tok);
6858 void set_parent_in_children();
6865 #endif // !NMODL_AST_INDEPENDENT_BLOCK_HPP 6866 #ifndef NMODL_AST_ASSIGNED_BLOCK_HPP 6867 #define NMODL_AST_ASSIGNED_BLOCK_HPP 6868 #define NMODL_AST_ASSIGNED_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 6966 return "AssignedBlock";
6986 return std::static_pointer_cast<
AssignedBlock>(shared_from_this());
6993 return std::static_pointer_cast<
const AssignedBlock>(shared_from_this());
7029 void emplace_back_assigned_definition(std::shared_ptr<AssignedDefinition> n);
7034 AssignedDefinitionVector::const_iterator
7035 erase_assigned_definition(AssignedDefinitionVector::const_iterator first);
7040 AssignedDefinitionVector::const_iterator
7041 erase_assigned_definition(AssignedDefinitionVector::const_iterator first,
7042 AssignedDefinitionVector::const_iterator last);
7049 size_t erase_assigned_definition(
7050 std::unordered_set<AssignedDefinition *> &to_be_erased);
7055 AssignedDefinitionVector::const_iterator
7056 insert_assigned_definition(AssignedDefinitionVector::const_iterator position,
7057 const std::shared_ptr<AssignedDefinition> &n);
7062 template <
class NodeType,
class InputIterator>
7064 insert_assigned_definition(AssignedDefinitionVector::const_iterator position,
7065 NodeType &to, InputIterator first,
7066 InputIterator last);
7072 reset_assigned_definition(AssignedDefinitionVector::const_iterator position,
7079 reset_assigned_definition(AssignedDefinitionVector::const_iterator position,
7080 std::shared_ptr<AssignedDefinition> n);
7098 token = std::make_shared<ModToken>(tok);
7185 void set_parent_in_children();
7192 #endif // !NMODL_AST_ASSIGNED_BLOCK_HPP 7193 #ifndef NMODL_AST_STATE_BLOCK_HPP 7194 #define NMODL_AST_STATE_BLOCK_HPP 7290 return "StateBlock";
7310 return std::static_pointer_cast<
StateBlock>(shared_from_this());
7317 return std::static_pointer_cast<
const StateBlock>(shared_from_this());
7361 token = std::make_shared<ModToken>(tok);
7448 void set_parent_in_children();
7455 #endif // !NMODL_AST_STATE_BLOCK_HPP 7456 #ifndef NMODL_AST_PLOT_BLOCK_HPP 7457 #define NMODL_AST_PLOT_BLOCK_HPP 7484 std::shared_ptr<PlotDeclaration>
plot;
7495 explicit PlotBlock(
const std::shared_ptr<PlotDeclaration> &plot);
7556 return std::static_pointer_cast<
PlotBlock>(shared_from_this());
7563 return std::static_pointer_cast<
const PlotBlock>(shared_from_this());
7594 const std::shared_ptr<PlotDeclaration> &
get_plot() const noexcept {
7607 token = std::make_shared<ModToken>(tok);
7626 void set_plot(std::shared_ptr<PlotDeclaration> &&plot);
7631 void set_plot(
const std::shared_ptr<PlotDeclaration> &plot);
7693 void set_parent_in_children();
7700 #endif // !NMODL_AST_PLOT_BLOCK_HPP 7701 #ifndef NMODL_AST_INITIAL_BLOCK_HPP 7702 #define NMODL_AST_INITIAL_BLOCK_HPP 7743 explicit InitialBlock(
const std::shared_ptr<StatementBlock> &statement_block);
7797 return "InitialBlock";
7817 return std::static_pointer_cast<
InitialBlock>(shared_from_this());
7824 return std::static_pointer_cast<
const InitialBlock>(shared_from_this());
7857 return statement_block;
7869 token = std::make_shared<ModToken>(tok);
7889 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
7895 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
7957 void set_parent_in_children();
7964 #endif // !NMODL_AST_INITIAL_BLOCK_HPP 7965 #ifndef NMODL_AST_CONSTRUCTOR_BLOCK_HPP 7966 #define NMODL_AST_CONSTRUCTOR_BLOCK_HPP 8010 const std::shared_ptr<StatementBlock> &statement_block);
8066 return "ConstructorBlock";
8081 return "CONSTRUCTOR ";
8095 return std::static_pointer_cast<
const ConstructorBlock>(shared_from_this());
8128 return statement_block;
8140 token = std::make_shared<ModToken>(tok);
8160 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
8166 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
8228 void set_parent_in_children();
8235 #endif // !NMODL_AST_CONSTRUCTOR_BLOCK_HPP 8236 #ifndef NMODL_AST_DESTRUCTOR_BLOCK_HPP 8237 #define NMODL_AST_DESTRUCTOR_BLOCK_HPP 8283 const std::shared_ptr<StatementBlock> &statement_block);
8337 return "DestructorBlock";
8364 return std::static_pointer_cast<
const DestructorBlock>(shared_from_this());
8397 return statement_block;
8409 token = std::make_shared<ModToken>(tok);
8429 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
8435 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
8497 void set_parent_in_children();
8504 #endif // !NMODL_AST_DESTRUCTOR_BLOCK_HPP 8505 #ifndef NMODL_AST_STATEMENT_BLOCK_HPP 8506 #define NMODL_AST_STATEMENT_BLOCK_HPP 8507 #define NMODL_AST_STATEMENT_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 8604 return "StatementBlock";
8611 return std::static_pointer_cast<
StatementBlock>(shared_from_this());
8618 return std::static_pointer_cast<
const StatementBlock>(shared_from_this());
8649 void emplace_back_statement(
Statement *n);
8654 void emplace_back_statement(std::shared_ptr<Statement> n);
8659 StatementVector::const_iterator
8660 erase_statement(StatementVector::const_iterator first);
8665 StatementVector::const_iterator
8666 erase_statement(StatementVector::const_iterator first,
8667 StatementVector::const_iterator last);
8674 size_t erase_statement(std::unordered_set<Statement *> &to_be_erased);
8679 StatementVector::const_iterator
8680 insert_statement(StatementVector::const_iterator position,
8681 const std::shared_ptr<Statement> &n);
8686 template <
class NodeType,
class InputIterator>
8687 void insert_statement(StatementVector::const_iterator position, NodeType &to,
8688 InputIterator first, InputIterator last);
8693 void reset_statement(StatementVector::const_iterator position,
Statement *n);
8698 void reset_statement(StatementVector::const_iterator position,
8699 std::shared_ptr<Statement> n);
8715 token = std::make_shared<ModToken>(tok);
8802 void set_parent_in_children();
8809 #endif // !NMODL_AST_STATEMENT_BLOCK_HPP 8810 #ifndef NMODL_AST_DERIVATIVE_BLOCK_HPP 8811 #define NMODL_AST_DERIVATIVE_BLOCK_HPP 8855 const std::shared_ptr<Name> &name,
8856 const std::shared_ptr<StatementBlock> &statement_block);
8910 return "DerivativeBlock";
8937 return std::static_pointer_cast<
const DerivativeBlock>(shared_from_this());
8981 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
8988 return statement_block;
9000 token = std::make_shared<ModToken>(tok);
9020 void set_name(std::shared_ptr<Name> &&name);
9025 void set_name(
const std::shared_ptr<Name> &name);
9031 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
9037 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
9099 void set_parent_in_children();
9106 #endif // !NMODL_AST_DERIVATIVE_BLOCK_HPP 9107 #ifndef NMODL_AST_LINEAR_BLOCK_HPP 9108 #define NMODL_AST_LINEAR_BLOCK_HPP 9157 explicit LinearBlock(
const std::shared_ptr<Name> &name,
9159 const std::shared_ptr<StatementBlock> &statement_block);
9213 return "LinearBlock";
9233 return std::static_pointer_cast<
LinearBlock>(shared_from_this());
9240 return std::static_pointer_cast<
const LinearBlock>(shared_from_this());
9284 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
9296 return statement_block;
9308 token = std::make_shared<ModToken>(tok);
9327 void set_name(std::shared_ptr<Name> &&name);
9332 void set_name(
const std::shared_ptr<Name> &name);
9343 void set_solvefor(
const NameVector &solvefor);
9349 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
9355 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
9417 void set_parent_in_children();
9424 #endif // !NMODL_AST_LINEAR_BLOCK_HPP 9425 #ifndef NMODL_AST_NON_LINEAR_BLOCK_HPP 9426 #define NMODL_AST_NON_LINEAR_BLOCK_HPP 9473 const std::shared_ptr<Name> &name,
const NameVector &solvefor,
9474 const std::shared_ptr<StatementBlock> &statement_block);
9528 return "NonLinearBlock";
9548 return std::static_pointer_cast<
NonLinearBlock>(shared_from_this());
9555 return std::static_pointer_cast<
const NonLinearBlock>(shared_from_this());
9599 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
9611 return statement_block;
9623 token = std::make_shared<ModToken>(tok);
9643 void set_name(std::shared_ptr<Name> &&name);
9648 void set_name(
const std::shared_ptr<Name> &name);
9659 void set_solvefor(
const NameVector &solvefor);
9665 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
9671 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
9733 void set_parent_in_children();
9740 #endif // !NMODL_AST_NON_LINEAR_BLOCK_HPP 9741 #ifndef NMODL_AST_DISCRETE_BLOCK_HPP 9742 #define NMODL_AST_DISCRETE_BLOCK_HPP 9775 const std::shared_ptr<Name> &name,
9776 const std::shared_ptr<StatementBlock> &statement_block);
9830 return "DiscreteBlock";
9850 return std::static_pointer_cast<
DiscreteBlock>(shared_from_this());
9857 return std::static_pointer_cast<
const DiscreteBlock>(shared_from_this());
9901 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
9908 return statement_block;
9920 token = std::make_shared<ModToken>(tok);
9940 void set_name(std::shared_ptr<Name> &&name);
9945 void set_name(
const std::shared_ptr<Name> &name);
9951 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
9957 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
10019 void set_parent_in_children();
10026 #endif // !NMODL_AST_DISCRETE_BLOCK_HPP 10027 #ifndef NMODL_AST_PARTIAL_BLOCK_HPP 10028 #define NMODL_AST_PARTIAL_BLOCK_HPP 10060 explicit PartialBlock(
const std::shared_ptr<Name> &name,
10061 const std::shared_ptr<StatementBlock> &statement_block);
10115 return "PartialBlock";
10135 return std::static_pointer_cast<
PartialBlock>(shared_from_this());
10142 return std::static_pointer_cast<
const PartialBlock>(shared_from_this());
10186 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
10192 noexcept
override {
10193 return statement_block;
10205 token = std::make_shared<ModToken>(tok);
10218 symtab = newsymtab;
10224 void set_name(std::shared_ptr<Name> &&name);
10229 void set_name(
const std::shared_ptr<Name> &name);
10235 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
10241 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
10303 void set_parent_in_children();
10310 #endif // !NMODL_AST_PARTIAL_BLOCK_HPP 10311 #ifndef NMODL_AST_FUNCTION_TABLE_BLOCK_HPP 10312 #define NMODL_AST_FUNCTION_TABLE_BLOCK_HPP 10349 const std::shared_ptr<Unit> &unit);
10405 return "FunctionTableBlock";
10420 return "FUNCTION_TABLE ";
10435 shared_from_this());
10479 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
10491 const std::shared_ptr<Unit> &
get_unit() const noexcept {
return unit; }
10502 token = std::make_shared<ModToken>(tok);
10515 symtab = newsymtab;
10522 void set_name(std::shared_ptr<Name> &&name);
10527 void set_name(
const std::shared_ptr<Name> &name);
10544 void set_unit(std::shared_ptr<Unit> &&unit);
10549 void set_unit(
const std::shared_ptr<Unit> &unit);
10611 void set_parent_in_children();
10618 #endif // !NMODL_AST_FUNCTION_TABLE_BLOCK_HPP 10619 #ifndef NMODL_AST_FUNCTION_BLOCK_HPP 10620 #define NMODL_AST_FUNCTION_BLOCK_HPP 10658 const std::shared_ptr<Name> &name,
const ArgumentVector ¶meters,
10659 const std::shared_ptr<Unit> &unit,
10660 const std::shared_ptr<StatementBlock> &statement_block);
10714 return "FunctionBlock";
10734 return std::static_pointer_cast<
FunctionBlock>(shared_from_this());
10741 return std::static_pointer_cast<
const FunctionBlock>(shared_from_this());
10785 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
10797 const std::shared_ptr<Unit> &
get_unit() const noexcept {
return unit; }
10803 noexcept
override {
10804 return statement_block;
10816 token = std::make_shared<ModToken>(tok);
10829 symtab = newsymtab;
10836 void set_name(std::shared_ptr<Name> &&name);
10841 void set_name(
const std::shared_ptr<Name> &name);
10858 void set_unit(std::shared_ptr<Unit> &&unit);
10863 void set_unit(
const std::shared_ptr<Unit> &unit);
10869 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
10875 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
10937 void set_parent_in_children();
10944 #endif // !NMODL_AST_FUNCTION_BLOCK_HPP 10945 #ifndef NMODL_AST_PROCEDURE_BLOCK_HPP 10946 #define NMODL_AST_PROCEDURE_BLOCK_HPP 10984 const std::shared_ptr<Name> &name,
const ArgumentVector ¶meters,
10985 const std::shared_ptr<Unit> &unit,
10986 const std::shared_ptr<StatementBlock> &statement_block);
11040 return "ProcedureBlock";
11060 return std::static_pointer_cast<
ProcedureBlock>(shared_from_this());
11067 return std::static_pointer_cast<
const ProcedureBlock>(shared_from_this());
11111 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
11123 const std::shared_ptr<Unit> &
get_unit() const noexcept {
return unit; }
11129 noexcept
override {
11130 return statement_block;
11142 token = std::make_shared<ModToken>(tok);
11155 symtab = newsymtab;
11162 void set_name(std::shared_ptr<Name> &&name);
11167 void set_name(
const std::shared_ptr<Name> &name);
11184 void set_unit(std::shared_ptr<Unit> &&unit);
11189 void set_unit(
const std::shared_ptr<Unit> &unit);
11195 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
11201 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
11263 void set_parent_in_children();
11270 #endif // !NMODL_AST_PROCEDURE_BLOCK_HPP 11271 #ifndef NMODL_AST_NET_RECEIVE_BLOCK_HPP 11272 #define NMODL_AST_NET_RECEIVE_BLOCK_HPP 11307 const std::shared_ptr<StatementBlock> &statement_block);
11361 return "NetReceiveBlock";
11376 return "NET_RECEIVE ";
11383 return std::static_pointer_cast<
NetReceiveBlock>(shared_from_this());
11390 return std::static_pointer_cast<
const NetReceiveBlock>(shared_from_this());
11429 noexcept
override {
11430 return statement_block;
11442 token = std::make_shared<ModToken>(tok);
11455 symtab = newsymtab;
11473 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
11479 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
11541 void set_parent_in_children();
11548 #endif // !NMODL_AST_NET_RECEIVE_BLOCK_HPP 11549 #ifndef NMODL_AST_SOLVE_BLOCK_HPP 11550 #define NMODL_AST_SOLVE_BLOCK_HPP 11587 explicit SolveBlock(
const std::shared_ptr<Name> &block_name,
11588 const std::shared_ptr<Name> &method,
11589 const std::shared_ptr<Name> &steadystate,
11590 const std::shared_ptr<StatementBlock> &ifsolerr);
11644 return "SolveBlock";
11664 return std::static_pointer_cast<
SolveBlock>(shared_from_this());
11671 return std::static_pointer_cast<
const SolveBlock>(shared_from_this());
11709 const std::shared_ptr<Name> &
get_method() const noexcept {
return method; }
11715 return steadystate;
11734 token = std::make_shared<ModToken>(tok);
11747 symtab = newsymtab;
11754 void set_block_name(std::shared_ptr<Name> &&block_name);
11759 void set_block_name(
const std::shared_ptr<Name> &block_name);
11764 void set_method(std::shared_ptr<Name> &&method);
11769 void set_method(
const std::shared_ptr<Name> &method);
11775 void set_steadystate(std::shared_ptr<Name> &&steadystate);
11780 void set_steadystate(
const std::shared_ptr<Name> &steadystate);
11786 void set_ifsolerr(std::shared_ptr<StatementBlock> &&ifsolerr);
11791 void set_ifsolerr(
const std::shared_ptr<StatementBlock> &ifsolerr);
11853 void set_parent_in_children();
11860 #endif // !NMODL_AST_SOLVE_BLOCK_HPP 11861 #ifndef NMODL_AST_BREAKPOINT_BLOCK_HPP 11862 #define NMODL_AST_BREAKPOINT_BLOCK_HPP 11908 const std::shared_ptr<StatementBlock> &statement_block);
11962 return "BreakpointBlock";
11982 return std::static_pointer_cast<
BreakpointBlock>(shared_from_this());
11989 return std::static_pointer_cast<
const BreakpointBlock>(shared_from_this());
12021 noexcept
override {
12022 return statement_block;
12034 token = std::make_shared<ModToken>(tok);
12047 symtab = newsymtab;
12054 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
12060 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
12122 void set_parent_in_children();
12129 #endif // !NMODL_AST_BREAKPOINT_BLOCK_HPP 12130 #ifndef NMODL_AST_TERMINAL_BLOCK_HPP 12131 #define NMODL_AST_TERMINAL_BLOCK_HPP 12162 const std::shared_ptr<StatementBlock> &statement_block);
12216 return "TerminalBlock";
12236 return std::static_pointer_cast<
TerminalBlock>(shared_from_this());
12243 return std::static_pointer_cast<
const TerminalBlock>(shared_from_this());
12275 noexcept
override {
12276 return statement_block;
12288 token = std::make_shared<ModToken>(tok);
12301 symtab = newsymtab;
12308 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
12314 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
12376 void set_parent_in_children();
12383 #endif // !NMODL_AST_TERMINAL_BLOCK_HPP 12384 #ifndef NMODL_AST_BEFORE_BLOCK_HPP 12385 #define NMODL_AST_BEFORE_BLOCK_HPP 12415 explicit BeforeBlock(
const std::shared_ptr<BABlock> &bablock);
12469 return "BeforeBlock";
12489 return std::static_pointer_cast<
BeforeBlock>(shared_from_this());
12496 return std::static_pointer_cast<
const BeforeBlock>(shared_from_this());
12540 token = std::make_shared<ModToken>(tok);
12553 symtab = newsymtab;
12560 void set_bablock(std::shared_ptr<BABlock> &&bablock);
12565 void set_bablock(
const std::shared_ptr<BABlock> &bablock);
12627 void set_parent_in_children();
12634 #endif // !NMODL_AST_BEFORE_BLOCK_HPP 12635 #ifndef NMODL_AST_AFTER_BLOCK_HPP 12636 #define NMODL_AST_AFTER_BLOCK_HPP 12665 class AfterBlock :
public Block {
12668 std::shared_ptr<BABlock> bablock;
12670 std::shared_ptr<ModToken> token;
12672 symtab::SymbolTable *symtab =
nullptr;
12678 explicit AfterBlock(BABlock *bablock);
12679 explicit AfterBlock(
const std::shared_ptr<BABlock> &bablock);
12680 AfterBlock(
const AfterBlock &obj);
12682 virtual ~AfterBlock() =
default;
12733 return "AfterBlock";
12753 return std::static_pointer_cast<
AfterBlock>(shared_from_this());
12760 return std::static_pointer_cast<
const AfterBlock>(shared_from_this());
12804 token = std::make_shared<ModToken>(tok);
12817 symtab = newsymtab;
12824 void set_bablock(std::shared_ptr<BABlock> &&bablock);
12829 void set_bablock(
const std::shared_ptr<BABlock> &bablock);
12891 void set_parent_in_children();
12898 #endif // !NMODL_AST_AFTER_BLOCK_HPP 12899 #ifndef NMODL_AST_BA_BLOCK_HPP 12900 #define NMODL_AST_BA_BLOCK_HPP 12934 explicit BABlock(
const std::shared_ptr<BABlockType> &type,
12935 const std::shared_ptr<StatementBlock> &statement_block);
12938 virtual ~
BABlock() =
default;
12994 return std::static_pointer_cast<
BABlock>(shared_from_this());
13001 return std::static_pointer_cast<
const BABlock>(shared_from_this());
13032 const std::shared_ptr<BABlockType> &
get_type() const noexcept {
return type; }
13038 noexcept
override {
13039 return statement_block;
13051 token = std::make_shared<ModToken>(tok);
13064 symtab = newsymtab;
13070 void set_type(std::shared_ptr<BABlockType> &&type);
13075 void set_type(
const std::shared_ptr<BABlockType> &type);
13081 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
13087 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
13149 void set_parent_in_children();
13156 #endif // !NMODL_AST_BA_BLOCK_HPP 13157 #ifndef NMODL_AST_FOR_NETCON_HPP 13158 #define NMODL_AST_FOR_NETCON_HPP 13192 const std::shared_ptr<StatementBlock> &statement_block);
13246 return "ForNetcon";
13261 return "FOR_NETCONS ";
13268 return std::static_pointer_cast<
ForNetcon>(shared_from_this());
13275 return std::static_pointer_cast<
const ForNetcon>(shared_from_this());
13314 noexcept
override {
13315 return statement_block;
13327 token = std::make_shared<ModToken>(tok);
13340 symtab = newsymtab;
13358 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
13364 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
13426 void set_parent_in_children();
13433 #endif // !NMODL_AST_FOR_NETCON_HPP 13434 #ifndef NMODL_AST_KINETIC_BLOCK_HPP 13435 #define NMODL_AST_KINETIC_BLOCK_HPP 13470 explicit KineticBlock(
const std::shared_ptr<Name> &name,
13472 const std::shared_ptr<StatementBlock> &statement_block);
13526 return "KineticBlock";
13546 return std::static_pointer_cast<
KineticBlock>(shared_from_this());
13553 return std::static_pointer_cast<
const KineticBlock>(shared_from_this());
13597 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
13608 noexcept
override {
13609 return statement_block;
13621 token = std::make_shared<ModToken>(tok);
13634 symtab = newsymtab;
13640 void set_name(std::shared_ptr<Name> &&name);
13645 void set_name(
const std::shared_ptr<Name> &name);
13656 void set_solvefor(
const NameVector &solvefor);
13662 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
13668 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
13730 void set_parent_in_children();
13737 #endif // !NMODL_AST_KINETIC_BLOCK_HPP 13738 #ifndef NMODL_AST_MATCH_BLOCK_HPP 13739 #define NMODL_AST_MATCH_BLOCK_HPP 13822 return "MatchBlock";
13842 return std::static_pointer_cast<
MatchBlock>(shared_from_this());
13849 return std::static_pointer_cast<
const MatchBlock>(shared_from_this());
13891 token = std::make_shared<ModToken>(tok);
13904 symtab = newsymtab;
13977 void set_parent_in_children();
13984 #endif // !NMODL_AST_MATCH_BLOCK_HPP 13985 #ifndef NMODL_AST_UNIT_BLOCK_HPP 13986 #define NMODL_AST_UNIT_BLOCK_HPP 14069 return "UnitBlock";
14089 return std::static_pointer_cast<
UnitBlock>(shared_from_this());
14096 return std::static_pointer_cast<
const UnitBlock>(shared_from_this());
14128 return definitions;
14140 token = std::make_shared<ModToken>(tok);
14153 symtab = newsymtab;
14227 void set_parent_in_children();
14234 #endif // !NMODL_AST_UNIT_BLOCK_HPP 14235 #ifndef NMODL_AST_CONSTANT_BLOCK_HPP 14236 #define NMODL_AST_CONSTANT_BLOCK_HPP 14330 return "ConstantBlock";
14350 return std::static_pointer_cast<
ConstantBlock>(shared_from_this());
14357 return std::static_pointer_cast<
const ConstantBlock>(shared_from_this());
14401 token = std::make_shared<ModToken>(tok);
14414 symtab = newsymtab;
14488 void set_parent_in_children();
14495 #endif // !NMODL_AST_CONSTANT_BLOCK_HPP 14496 #ifndef NMODL_AST_NEURON_BLOCK_HPP 14497 #define NMODL_AST_NEURON_BLOCK_HPP 14542 explicit NeuronBlock(
const std::shared_ptr<StatementBlock> &statement_block);
14596 return "NeuronBlock";
14616 return std::static_pointer_cast<
NeuronBlock>(shared_from_this());
14623 return std::static_pointer_cast<
const NeuronBlock>(shared_from_this());
14655 noexcept
override {
14656 return statement_block;
14668 token = std::make_shared<ModToken>(tok);
14681 symtab = newsymtab;
14688 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
14694 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
14756 void set_parent_in_children();
14763 #endif // !NMODL_AST_NEURON_BLOCK_HPP 14764 #ifndef NMODL_AST_UNIT_HPP 14765 #define NMODL_AST_UNIT_HPP 14793 explicit Unit(
const std::shared_ptr<String> &name);
14796 virtual ~
Unit() =
default;
14804 bool is_unit() const noexcept
override {
return true; }
14852 return std::static_pointer_cast<
Unit>(shared_from_this());
14859 return std::static_pointer_cast<
const Unit>(shared_from_this());
14890 const std::shared_ptr<String> &
get_name() const noexcept {
return name; }
14901 token = std::make_shared<ModToken>(tok);
14907 void set_name(std::shared_ptr<String> &&name);
14912 void set_name(
const std::shared_ptr<String> &name);
14974 void set_parent_in_children();
14981 #endif // !NMODL_AST_UNIT_HPP 14982 #ifndef NMODL_AST_DOUBLE_UNIT_HPP 14983 #define NMODL_AST_DOUBLE_UNIT_HPP 15013 explicit DoubleUnit(
const std::shared_ptr<Double> &value,
15014 const std::shared_ptr<Unit> &unit);
15068 return "DoubleUnit";
15075 return std::static_pointer_cast<
DoubleUnit>(shared_from_this());
15082 return std::static_pointer_cast<
const DoubleUnit>(shared_from_this());
15100 const std::shared_ptr<Double> &
get_value() const noexcept {
return value; }
15105 const std::shared_ptr<Unit> &
get_unit() const noexcept {
return unit; }
15116 token = std::make_shared<ModToken>(tok);
15122 void set_value(std::shared_ptr<Double> &&value);
15127 void set_value(
const std::shared_ptr<Double> &value);
15132 void set_unit(std::shared_ptr<Unit> &&unit);
15137 void set_unit(
const std::shared_ptr<Unit> &unit);
15199 void set_parent_in_children();
15206 #endif // !NMODL_AST_DOUBLE_UNIT_HPP 15207 #ifndef NMODL_AST_LOCAL_VAR_HPP 15208 #define NMODL_AST_LOCAL_VAR_HPP 15236 explicit LocalVar(
const std::shared_ptr<Identifier> &name);
15297 return std::static_pointer_cast<
LocalVar>(shared_from_this());
15304 return std::static_pointer_cast<
const LocalVar>(shared_from_this());
15335 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
15346 token = std::make_shared<ModToken>(tok);
15352 void set_name(std::shared_ptr<Identifier> &&name);
15357 void set_name(
const std::shared_ptr<Identifier> &name);
15419 void set_parent_in_children();
15426 #endif // !NMODL_AST_LOCAL_VAR_HPP 15427 #ifndef NMODL_AST_LIMITS_HPP 15428 #define NMODL_AST_LIMITS_HPP 15458 explicit Limits(
const std::shared_ptr<Double> &min,
15459 const std::shared_ptr<Double> &max);
15462 virtual ~
Limits() =
default;
15518 return std::static_pointer_cast<
Limits>(shared_from_this());
15525 return std::static_pointer_cast<
const Limits>(shared_from_this());
15543 const std::shared_ptr<Double> &
get_min() const noexcept {
return min; }
15548 const std::shared_ptr<Double> &
get_max() const noexcept {
return max; }
15559 token = std::make_shared<ModToken>(tok);
15565 void set_min(std::shared_ptr<Double> &&min);
15570 void set_min(
const std::shared_ptr<Double> &min);
15575 void set_max(std::shared_ptr<Double> &&max);
15580 void set_max(
const std::shared_ptr<Double> &max);
15642 void set_parent_in_children();
15649 #endif // !NMODL_AST_LIMITS_HPP 15650 #ifndef NMODL_AST_NUMBER_RANGE_HPP 15651 #define NMODL_AST_NUMBER_RANGE_HPP 15681 explicit NumberRange(
const std::shared_ptr<Number> &min,
15682 const std::shared_ptr<Number> &max);
15736 return "NumberRange";
15743 return std::static_pointer_cast<
NumberRange>(shared_from_this());
15750 return std::static_pointer_cast<
const NumberRange>(shared_from_this());
15768 const std::shared_ptr<Number> &
get_min() const noexcept {
return min; }
15773 const std::shared_ptr<Number> &
get_max() const noexcept {
return max; }
15784 token = std::make_shared<ModToken>(tok);
15790 void set_min(std::shared_ptr<Number> &&min);
15795 void set_min(
const std::shared_ptr<Number> &min);
15800 void set_max(std::shared_ptr<Number> &&max);
15805 void set_max(
const std::shared_ptr<Number> &max);
15867 void set_parent_in_children();
15874 #endif // !NMODL_AST_NUMBER_RANGE_HPP 15875 #ifndef NMODL_AST_PLOT_VAR_HPP 15876 #define NMODL_AST_PLOT_VAR_HPP 15906 explicit PlotVar(
const std::shared_ptr<Identifier> &name,
15907 const std::shared_ptr<Integer> &index);
15910 virtual ~
PlotVar() =
default;
15966 return std::static_pointer_cast<
PlotVar>(shared_from_this());
15973 return std::static_pointer_cast<
const PlotVar>(shared_from_this());
15991 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
15996 const std::shared_ptr<Integer> &
get_index() const noexcept {
return index; }
16007 token = std::make_shared<ModToken>(tok);
16013 void set_name(std::shared_ptr<Identifier> &&name);
16018 void set_name(
const std::shared_ptr<Identifier> &name);
16023 void set_index(std::shared_ptr<Integer> &&index);
16028 void set_index(
const std::shared_ptr<Integer> &index);
16090 void set_parent_in_children();
16097 #endif // !NMODL_AST_PLOT_VAR_HPP 16098 #ifndef NMODL_AST_CONSTANT_VAR_HPP 16099 #define NMODL_AST_CONSTANT_VAR_HPP 16131 explicit ConstantVar(
const std::shared_ptr<Name> &name,
16132 const std::shared_ptr<Number> &value,
16133 const std::shared_ptr<Unit> &unit);
16187 return "ConstantVar";
16194 return std::static_pointer_cast<
ConstantVar>(shared_from_this());
16201 return std::static_pointer_cast<
const ConstantVar>(shared_from_this());
16232 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
16237 const std::shared_ptr<Number> &
get_value() const noexcept {
return value; }
16242 const std::shared_ptr<Unit> &
get_unit() const noexcept {
return unit; }
16253 token = std::make_shared<ModToken>(tok);
16259 void set_name(std::shared_ptr<Name> &&name);
16264 void set_name(
const std::shared_ptr<Name> &name);
16269 void set_value(std::shared_ptr<Number> &&value);
16274 void set_value(
const std::shared_ptr<Number> &value);
16279 void set_unit(std::shared_ptr<Unit> &&unit);
16284 void set_unit(
const std::shared_ptr<Unit> &unit);
16346 void set_parent_in_children();
16353 #endif // !NMODL_AST_CONSTANT_VAR_HPP 16354 #ifndef NMODL_AST_BINARY_OPERATOR_HPP 16355 #define NMODL_AST_BINARY_OPERATOR_HPP 16438 return "BinaryOperator";
16445 return std::static_pointer_cast<
BinaryOperator>(shared_from_this());
16452 return std::static_pointer_cast<
const BinaryOperator>(shared_from_this());
16481 token = std::make_shared<ModToken>(tok);
16558 void set_parent_in_children();
16565 #endif // !NMODL_AST_BINARY_OPERATOR_HPP 16566 #ifndef NMODL_AST_UNARY_OPERATOR_HPP 16567 #define NMODL_AST_UNARY_OPERATOR_HPP 16650 return "UnaryOperator";
16657 return std::static_pointer_cast<
UnaryOperator>(shared_from_this());
16664 return std::static_pointer_cast<
const UnaryOperator>(shared_from_this());
16693 token = std::make_shared<ModToken>(tok);
16699 void set_value(
UnaryOp value);
16770 void set_parent_in_children();
16777 #endif // !NMODL_AST_UNARY_OPERATOR_HPP 16778 #ifndef NMODL_AST_REACTION_OPERATOR_HPP 16779 #define NMODL_AST_REACTION_OPERATOR_HPP 16864 return "ReactionOperator";
16878 return std::static_pointer_cast<
const ReactionOperator>(shared_from_this());
16907 token = std::make_shared<ModToken>(tok);
16984 void set_parent_in_children();
16991 #endif // !NMODL_AST_REACTION_OPERATOR_HPP 16992 #ifndef NMODL_AST_PAREN_EXPRESSION_HPP 16993 #define NMODL_AST_PAREN_EXPRESSION_HPP 17021 explicit ParenExpression(
const std::shared_ptr<Expression> &expression);
17075 return "ParenExpression";
17082 return std::static_pointer_cast<
ParenExpression>(shared_from_this());
17089 return std::static_pointer_cast<
const ParenExpression>(shared_from_this());
17120 token = std::make_shared<ModToken>(tok);
17127 void set_expression(std::shared_ptr<Expression> &&expression);
17132 void set_expression(
const std::shared_ptr<Expression> &expression);
17194 void set_parent_in_children();
17201 #endif // !NMODL_AST_PAREN_EXPRESSION_HPP 17202 #ifndef NMODL_AST_BINARY_EXPRESSION_HPP 17203 #define NMODL_AST_BINARY_EXPRESSION_HPP 17252 const std::shared_ptr<Expression> &rhs);
17308 return "BinaryExpression";
17322 return std::static_pointer_cast<
const BinaryExpression>(shared_from_this());
17340 const std::shared_ptr<Expression> &
get_lhs() const noexcept {
return lhs; }
17350 const std::shared_ptr<Expression> &
get_rhs() const noexcept {
return rhs; }
17361 token = std::make_shared<ModToken>(tok);
17368 void set_lhs(std::shared_ptr<Expression> &&lhs);
17373 void set_lhs(
const std::shared_ptr<Expression> &lhs);
17390 void set_rhs(std::shared_ptr<Expression> &&rhs);
17395 void set_rhs(
const std::shared_ptr<Expression> &rhs);
17457 void set_parent_in_children();
17464 #endif // !NMODL_AST_BINARY_EXPRESSION_HPP 17465 #ifndef NMODL_AST_DIFF_EQ_EXPRESSION_HPP 17466 #define NMODL_AST_DIFF_EQ_EXPRESSION_HPP 17495 const std::shared_ptr<BinaryExpression> &expression);
17551 return "DiffEqExpression";
17565 return std::static_pointer_cast<
const DiffEqExpression>(shared_from_this());
17596 token = std::make_shared<ModToken>(tok);
17603 void set_expression(std::shared_ptr<BinaryExpression> &&expression);
17608 void set_expression(
const std::shared_ptr<BinaryExpression> &expression);
17670 void set_parent_in_children();
17677 #endif // !NMODL_AST_DIFF_EQ_EXPRESSION_HPP 17678 #ifndef NMODL_AST_UNARY_EXPRESSION_HPP 17679 #define NMODL_AST_UNARY_EXPRESSION_HPP 17710 const std::shared_ptr<Expression> &expression);
17764 return "UnaryExpression";
17771 return std::static_pointer_cast<
UnaryExpression>(shared_from_this());
17778 return std::static_pointer_cast<
const UnaryExpression>(shared_from_this());
17814 token = std::make_shared<ModToken>(tok);
17832 void set_expression(std::shared_ptr<Expression> &&expression);
17837 void set_expression(
const std::shared_ptr<Expression> &expression);
17899 void set_parent_in_children();
17906 #endif // !NMODL_AST_UNARY_EXPRESSION_HPP 17907 #ifndef NMODL_AST_NON_LIN_EQUATION_HPP 17908 #define NMODL_AST_NON_LIN_EQUATION_HPP 17939 const std::shared_ptr<Expression> &rhs);
17993 return "NonLinEquation";
18013 return std::static_pointer_cast<
NonLinEquation>(shared_from_this());
18020 return std::static_pointer_cast<
const NonLinEquation>(shared_from_this());
18038 const std::shared_ptr<Expression> &
get_lhs() const noexcept {
return lhs; }
18043 const std::shared_ptr<Expression> &
get_rhs() const noexcept {
return rhs; }
18054 token = std::make_shared<ModToken>(tok);
18061 void set_lhs(std::shared_ptr<Expression> &&lhs);
18066 void set_lhs(
const std::shared_ptr<Expression> &lhs);
18072 void set_rhs(std::shared_ptr<Expression> &&rhs);
18077 void set_rhs(
const std::shared_ptr<Expression> &rhs);
18139 void set_parent_in_children();
18146 #endif // !NMODL_AST_NON_LIN_EQUATION_HPP 18147 #ifndef NMODL_AST_LIN_EQUATION_HPP 18148 #define NMODL_AST_LIN_EQUATION_HPP 18178 explicit LinEquation(
const std::shared_ptr<Expression> &left_linxpression,
18179 const std::shared_ptr<Expression> &linxpression);
18233 return "LinEquation";
18253 return std::static_pointer_cast<
LinEquation>(shared_from_this());
18260 return std::static_pointer_cast<
const LinEquation>(shared_from_this());
18279 return left_linxpression;
18286 return linxpression;
18298 token = std::make_shared<ModToken>(tok);
18305 void set_left_linxpression(std::shared_ptr<Expression> &&left_linxpression);
18311 set_left_linxpression(
const std::shared_ptr<Expression> &left_linxpression);
18317 void set_linxpression(std::shared_ptr<Expression> &&linxpression);
18322 void set_linxpression(
const std::shared_ptr<Expression> &linxpression);
18384 void set_parent_in_children();
18391 #endif // !NMODL_AST_LIN_EQUATION_HPP 18392 #ifndef NMODL_AST_FUNCTION_CALL_HPP 18393 #define NMODL_AST_FUNCTION_CALL_HPP 18423 explicit FunctionCall(
const std::shared_ptr<Name> &name,
18478 return "FunctionCall";
18485 return std::static_pointer_cast<
FunctionCall>(shared_from_this());
18492 return std::static_pointer_cast<
const FunctionCall>(shared_from_this());
18523 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
18539 token = std::make_shared<ModToken>(tok);
18545 void set_name(std::shared_ptr<Name> &&name);
18550 void set_name(
const std::shared_ptr<Name> &name);
18623 void set_parent_in_children();
18630 #endif // !NMODL_AST_FUNCTION_CALL_HPP 18631 #ifndef NMODL_AST_FIRST_LAST_TYPE_INDEX_HPP 18632 #define NMODL_AST_FIRST_LAST_TYPE_INDEX_HPP 18715 return "FirstLastTypeIndex";
18730 shared_from_this());
18759 token = std::make_shared<ModToken>(tok);
18836 void set_parent_in_children();
18843 #endif // !NMODL_AST_FIRST_LAST_TYPE_INDEX_HPP 18844 #ifndef NMODL_AST_WATCH_HPP 18845 #define NMODL_AST_WATCH_HPP 18875 explicit Watch(
const std::shared_ptr<Expression> &expression,
18876 const std::shared_ptr<Expression> &value);
18879 virtual ~
Watch() =
default;
18935 return std::static_pointer_cast<
Watch>(shared_from_this());
18942 return std::static_pointer_cast<
const Watch>(shared_from_this());
18980 token = std::make_shared<ModToken>(tok);
18986 void set_expression(std::shared_ptr<Expression> &&expression);
18991 void set_expression(
const std::shared_ptr<Expression> &expression);
18996 void set_value(std::shared_ptr<Expression> &&value);
19001 void set_value(
const std::shared_ptr<Expression> &value);
19063 void set_parent_in_children();
19070 #endif // !NMODL_AST_WATCH_HPP 19071 #ifndef NMODL_AST_QUEUE_EXPRESSION_TYPE_HPP 19072 #define NMODL_AST_QUEUE_EXPRESSION_TYPE_HPP 19155 return "QueueExpressionType";
19170 shared_from_this());
19199 token = std::make_shared<ModToken>(tok);
19276 void set_parent_in_children();
19283 #endif // !NMODL_AST_QUEUE_EXPRESSION_TYPE_HPP 19284 #ifndef NMODL_AST_MATCH_HPP 19285 #define NMODL_AST_MATCH_HPP 19315 explicit Match(
const std::shared_ptr<Identifier> &name,
19316 const std::shared_ptr<Expression> &expression);
19319 virtual ~
Match() =
default;
19375 return std::static_pointer_cast<
Match>(shared_from_this());
19382 return std::static_pointer_cast<
const Match>(shared_from_this());
19400 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
19418 token = std::make_shared<ModToken>(tok);
19424 void set_name(std::shared_ptr<Identifier> &&name);
19429 void set_name(
const std::shared_ptr<Identifier> &name);
19434 void set_expression(std::shared_ptr<Expression> &&expression);
19439 void set_expression(
const std::shared_ptr<Expression> &expression);
19501 void set_parent_in_children();
19508 #endif // !NMODL_AST_MATCH_HPP 19509 #ifndef NMODL_AST_BA_BLOCK_TYPE_HPP 19510 #define NMODL_AST_BA_BLOCK_TYPE_HPP 19595 return "BABlockType";
19602 return std::static_pointer_cast<
BABlockType>(shared_from_this());
19609 return std::static_pointer_cast<
const BABlockType>(shared_from_this());
19638 token = std::make_shared<ModToken>(tok);
19644 void set_value(
BAType value);
19715 void set_parent_in_children();
19722 #endif // !NMODL_AST_BA_BLOCK_TYPE_HPP 19723 #ifndef NMODL_AST_UNIT_DEF_HPP 19724 #define NMODL_AST_UNIT_DEF_HPP 19754 explicit UnitDef(
const std::shared_ptr<Unit> &unit1,
19755 const std::shared_ptr<Unit> &unit2);
19758 virtual ~
UnitDef() =
default;
19814 return std::static_pointer_cast<
UnitDef>(shared_from_this());
19821 return std::static_pointer_cast<
const UnitDef>(shared_from_this());
19852 const std::shared_ptr<Unit> &
get_unit1() const noexcept {
return unit1; }
19857 const std::shared_ptr<Unit> &
get_unit2() const noexcept {
return unit2; }
19868 token = std::make_shared<ModToken>(tok);
19874 void set_unit1(std::shared_ptr<Unit> &&unit1);
19879 void set_unit1(
const std::shared_ptr<Unit> &unit1);
19884 void set_unit2(std::shared_ptr<Unit> &&unit2);
19889 void set_unit2(
const std::shared_ptr<Unit> &unit2);
19951 void set_parent_in_children();
19958 #endif // !NMODL_AST_UNIT_DEF_HPP 19959 #ifndef NMODL_AST_FACTOR_DEF_HPP 19960 #define NMODL_AST_FACTOR_DEF_HPP 19997 explicit FactorDef(
const std::shared_ptr<Name> &name,
19998 const std::shared_ptr<Double> &value,
19999 const std::shared_ptr<Unit> &unit1,
20000 const std::shared_ptr<Boolean> >,
20001 const std::shared_ptr<Unit> &unit2);
20057 return "FactorDef";
20064 return std::static_pointer_cast<
FactorDef>(shared_from_this());
20071 return std::static_pointer_cast<
const FactorDef>(shared_from_this());
20102 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
20107 const std::shared_ptr<Double> &
get_value() const noexcept {
return value; }
20112 const std::shared_ptr<Unit> &
get_unit1() const noexcept {
return unit1; }
20117 const std::shared_ptr<Boolean> &
get_gt() const noexcept {
return gt; }
20122 const std::shared_ptr<Unit> &
get_unit2() const noexcept {
return unit2; }
20133 token = std::make_shared<ModToken>(tok);
20139 void set_name(std::shared_ptr<Name> &&name);
20144 void set_name(
const std::shared_ptr<Name> &name);
20149 void set_value(std::shared_ptr<Double> &&value);
20154 void set_value(
const std::shared_ptr<Double> &value);
20159 void set_unit1(std::shared_ptr<Unit> &&unit1);
20164 void set_unit1(
const std::shared_ptr<Unit> &unit1);
20169 void set_gt(std::shared_ptr<Boolean> &>);
20174 void set_gt(
const std::shared_ptr<Boolean> >);
20179 void set_unit2(std::shared_ptr<Unit> &&unit2);
20184 void set_unit2(
const std::shared_ptr<Unit> &unit2);
20246 void set_parent_in_children();
20253 #endif // !NMODL_AST_FACTOR_DEF_HPP 20254 #ifndef NMODL_AST_VALENCE_HPP 20255 #define NMODL_AST_VALENCE_HPP 20285 explicit Valence(
const std::shared_ptr<Name> &type,
20286 const std::shared_ptr<Double> &value);
20289 virtual ~
Valence() =
default;
20345 return std::static_pointer_cast<
Valence>(shared_from_this());
20352 return std::static_pointer_cast<
const Valence>(shared_from_this());
20370 const std::shared_ptr<Name> &
get_type() const noexcept {
return type; }
20375 const std::shared_ptr<Double> &
get_value() const noexcept {
return value; }
20386 token = std::make_shared<ModToken>(tok);
20392 void set_type(std::shared_ptr<Name> &&type);
20397 void set_type(
const std::shared_ptr<Name> &type);
20402 void set_value(std::shared_ptr<Double> &&value);
20407 void set_value(
const std::shared_ptr<Double> &value);
20469 void set_parent_in_children();
20476 #endif // !NMODL_AST_VALENCE_HPP 20477 #ifndef NMODL_AST_UNIT_STATE_HPP 20478 #define NMODL_AST_UNIT_STATE_HPP 20559 return "UnitState";
20566 return std::static_pointer_cast<
UnitState>(shared_from_this());
20573 return std::static_pointer_cast<
const UnitState>(shared_from_this());
20602 token = std::make_shared<ModToken>(tok);
20679 void set_parent_in_children();
20686 #endif // !NMODL_AST_UNIT_STATE_HPP 20687 #ifndef NMODL_AST_LOCAL_LIST_STATEMENT_HPP 20688 #define NMODL_AST_LOCAL_LIST_STATEMENT_HPP 20689 #define NMODL_AST_LOCAL_LIST_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 20772 return "LocalListStatement";
20800 shared_from_this());
20818 void emplace_back_local_var(
LocalVar *n);
20823 void emplace_back_local_var(std::shared_ptr<LocalVar> n);
20828 LocalVarVector::const_iterator
20829 erase_local_var(LocalVarVector::const_iterator first);
20834 LocalVarVector::const_iterator
20835 erase_local_var(LocalVarVector::const_iterator first,
20836 LocalVarVector::const_iterator last);
20843 size_t erase_local_var(std::unordered_set<LocalVar *> &to_be_erased);
20848 LocalVarVector::const_iterator
20849 insert_local_var(LocalVarVector::const_iterator position,
20850 const std::shared_ptr<LocalVar> &n);
20855 template <
class NodeType,
class InputIterator>
20856 void insert_local_var(LocalVarVector::const_iterator position, NodeType &to,
20857 InputIterator first, InputIterator last);
20862 void reset_local_var(LocalVarVector::const_iterator position,
LocalVar *n);
20867 void reset_local_var(LocalVarVector::const_iterator position,
20868 std::shared_ptr<LocalVar> n);
20884 token = std::make_shared<ModToken>(tok);
20958 void set_parent_in_children();
20965 #endif // !NMODL_AST_LOCAL_LIST_STATEMENT_HPP 20966 #ifndef NMODL_AST_MODEL_HPP 20967 #define NMODL_AST_MODEL_HPP 20995 explicit Model(
const std::shared_ptr<String> &title);
20998 virtual ~
Model() =
default;
21067 return std::static_pointer_cast<
Model>(shared_from_this());
21074 return std::static_pointer_cast<
const Model>(shared_from_this());
21092 const std::shared_ptr<String> &
get_title() const noexcept {
return title; }
21103 token = std::make_shared<ModToken>(tok);
21109 void set_title(std::shared_ptr<String> &&title);
21114 void set_title(
const std::shared_ptr<String> &title);
21176 void set_parent_in_children();
21183 #endif // !NMODL_AST_MODEL_HPP 21184 #ifndef NMODL_AST_DEFINE_HPP 21185 #define NMODL_AST_DEFINE_HPP 21215 explicit Define(
const std::shared_ptr<Name> &name,
21216 const std::shared_ptr<Integer> &value);
21219 virtual ~
Define() =
default;
21288 return std::static_pointer_cast<
Define>(shared_from_this());
21295 return std::static_pointer_cast<
const Define>(shared_from_this());
21326 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
21331 const std::shared_ptr<Integer> &
get_value() const noexcept {
return value; }
21342 token = std::make_shared<ModToken>(tok);
21348 void set_name(std::shared_ptr<Name> &&name);
21353 void set_name(
const std::shared_ptr<Name> &name);
21358 void set_value(std::shared_ptr<Integer> &&value);
21363 void set_value(
const std::shared_ptr<Integer> &value);
21425 void set_parent_in_children();
21432 #endif // !NMODL_AST_DEFINE_HPP 21433 #ifndef NMODL_AST_INCLUDE_HPP 21434 #define NMODL_AST_INCLUDE_HPP 21464 explicit Include(
const std::shared_ptr<String> &filename,
21468 virtual ~
Include() =
default;
21537 return std::static_pointer_cast<
Include>(shared_from_this());
21544 return std::static_pointer_cast<
const Include>(shared_from_this());
21580 token = std::make_shared<ModToken>(tok);
21586 void set_filename(std::shared_ptr<String> &&filename);
21591 void set_filename(
const std::shared_ptr<String> &filename);
21663 void set_parent_in_children();
21670 #endif // !NMODL_AST_INCLUDE_HPP 21671 #ifndef NMODL_AST_PARAM_ASSIGN_HPP 21672 #define NMODL_AST_PARAM_ASSIGN_HPP 21707 explicit ParamAssign(
const std::shared_ptr<Identifier> &name,
21708 const std::shared_ptr<Number> &value,
21709 const std::shared_ptr<Unit> &unit,
21710 const std::shared_ptr<Limits> &limit);
21764 return "ParamAssign";
21771 return std::static_pointer_cast<
ParamAssign>(shared_from_this());
21778 return std::static_pointer_cast<
const ParamAssign>(shared_from_this());
21809 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
21814 const std::shared_ptr<Number> &
get_value() const noexcept {
return value; }
21819 const std::shared_ptr<Unit> &
get_unit() const noexcept {
return unit; }
21824 const std::shared_ptr<Limits> &
get_limit() const noexcept {
return limit; }
21835 token = std::make_shared<ModToken>(tok);
21841 void set_name(std::shared_ptr<Identifier> &&name);
21846 void set_name(
const std::shared_ptr<Identifier> &name);
21851 void set_value(std::shared_ptr<Number> &&value);
21856 void set_value(
const std::shared_ptr<Number> &value);
21861 void set_unit(std::shared_ptr<Unit> &&unit);
21866 void set_unit(
const std::shared_ptr<Unit> &unit);
21871 void set_limit(std::shared_ptr<Limits> &&limit);
21876 void set_limit(
const std::shared_ptr<Limits> &limit);
21938 void set_parent_in_children();
21945 #endif // !NMODL_AST_PARAM_ASSIGN_HPP 21946 #ifndef NMODL_AST_STEPPED_HPP 21947 #define NMODL_AST_STEPPED_HPP 21979 explicit Stepped(
const std::shared_ptr<Name> &name,
21981 const std::shared_ptr<Unit> &unit);
21984 virtual ~
Stepped() =
default;
22040 return std::static_pointer_cast<
Stepped>(shared_from_this());
22047 return std::static_pointer_cast<
const Stepped>(shared_from_this());
22065 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
22075 const std::shared_ptr<Unit> &
get_unit() const noexcept {
return unit; }
22086 token = std::make_shared<ModToken>(tok);
22092 void set_name(std::shared_ptr<Name> &&name);
22097 void set_name(
const std::shared_ptr<Name> &name);
22112 void set_unit(std::shared_ptr<Unit> &&unit);
22117 void set_unit(
const std::shared_ptr<Unit> &unit);
22179 void set_parent_in_children();
22186 #endif // !NMODL_AST_STEPPED_HPP 22187 #ifndef NMODL_AST_INDEPENDENT_DEFINITION_HPP 22188 #define NMODL_AST_INDEPENDENT_DEFINITION_HPP 22231 const std::shared_ptr<Name> &name,
22232 const std::shared_ptr<Number> &from,
22233 const std::shared_ptr<Number> &to,
22234 const std::shared_ptr<Integer> &with,
22235 const std::shared_ptr<Number> &start,
22236 const std::shared_ptr<Unit> &unit);
22292 return "IndependentDefinition";
22307 shared_from_this());
22325 const std::shared_ptr<Boolean> &
get_sweep() const noexcept {
return sweep; }
22330 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
22335 const std::shared_ptr<Number> &
get_from() const noexcept {
return from; }
22340 const std::shared_ptr<Number> &
get_to() const noexcept {
return to; }
22345 const std::shared_ptr<Integer> &
get_with() const noexcept {
return with; }
22350 const std::shared_ptr<Number> &
get_start() const noexcept {
return start; }
22355 const std::shared_ptr<Unit> &
get_unit() const noexcept {
return unit; }
22366 token = std::make_shared<ModToken>(tok);
22373 void set_sweep(std::shared_ptr<Boolean> &&sweep);
22378 void set_sweep(
const std::shared_ptr<Boolean> &sweep);
22384 void set_name(std::shared_ptr<Name> &&name);
22389 void set_name(
const std::shared_ptr<Name> &name);
22395 void set_from(std::shared_ptr<Number> &&from);
22400 void set_from(
const std::shared_ptr<Number> &from);
22406 void set_to(std::shared_ptr<Number> &&to);
22411 void set_to(
const std::shared_ptr<Number> &to);
22417 void set_with(std::shared_ptr<Integer> &&with);
22422 void set_with(
const std::shared_ptr<Integer> &with);
22428 void set_start(std::shared_ptr<Number> &&start);
22433 void set_start(
const std::shared_ptr<Number> &start);
22439 void set_unit(std::shared_ptr<Unit> &&unit);
22444 void set_unit(
const std::shared_ptr<Unit> &unit);
22506 void set_parent_in_children();
22513 #endif // !NMODL_AST_INDEPENDENT_DEFINITION_HPP 22514 #ifndef NMODL_AST_ASSIGNED_DEFINITION_HPP 22515 #define NMODL_AST_ASSIGNED_DEFINITION_HPP 22558 const std::shared_ptr<Integer> &length,
22559 const std::shared_ptr<Number> &from,
22560 const std::shared_ptr<Number> &to,
22561 const std::shared_ptr<Number> &start,
22562 const std::shared_ptr<Unit> &unit,
22563 const std::shared_ptr<Double> &abstol);
22619 return "AssignedDefinition";
22634 shared_from_this());
22665 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
22670 const std::shared_ptr<Integer> &
get_length() const noexcept {
return length; }
22675 const std::shared_ptr<Number> &
get_from() const noexcept {
return from; }
22680 const std::shared_ptr<Number> &
get_to() const noexcept {
return to; }
22685 const std::shared_ptr<Number> &
get_start() const noexcept {
return start; }
22690 const std::shared_ptr<Unit> &
get_unit() const noexcept {
return unit; }
22695 const std::shared_ptr<Double> &
get_abstol() const noexcept {
return abstol; }
22706 token = std::make_shared<ModToken>(tok);
22713 void set_name(std::shared_ptr<Identifier> &&name);
22718 void set_name(
const std::shared_ptr<Identifier> &name);
22724 void set_length(std::shared_ptr<Integer> &&length);
22729 void set_length(
const std::shared_ptr<Integer> &length);
22735 void set_from(std::shared_ptr<Number> &&from);
22740 void set_from(
const std::shared_ptr<Number> &from);
22746 void set_to(std::shared_ptr<Number> &&to);
22751 void set_to(
const std::shared_ptr<Number> &to);
22757 void set_start(std::shared_ptr<Number> &&start);
22762 void set_start(
const std::shared_ptr<Number> &start);
22768 void set_unit(std::shared_ptr<Unit> &&unit);
22773 void set_unit(
const std::shared_ptr<Unit> &unit);
22779 void set_abstol(std::shared_ptr<Double> &&abstol);
22784 void set_abstol(
const std::shared_ptr<Double> &abstol);
22846 void set_parent_in_children();
22853 #endif // !NMODL_AST_ASSIGNED_DEFINITION_HPP 22854 #ifndef NMODL_AST_PLOT_DECLARATION_HPP 22855 #define NMODL_AST_PLOT_DECLARATION_HPP 22886 const std::shared_ptr<PlotVar> &name);
22940 return "PlotDeclaration";
22960 return std::static_pointer_cast<
PlotDeclaration>(shared_from_this());
22967 return std::static_pointer_cast<
const PlotDeclaration>(shared_from_this());
22990 const std::shared_ptr<PlotVar> &
get_name() const noexcept {
return name; }
23001 token = std::make_shared<ModToken>(tok);
23019 void set_name(std::shared_ptr<PlotVar> &&name);
23024 void set_name(
const std::shared_ptr<PlotVar> &name);
23086 void set_parent_in_children();
23093 #endif // !NMODL_AST_PLOT_DECLARATION_HPP 23094 #ifndef NMODL_AST_CONDUCTANCE_HINT_HPP 23095 #define NMODL_AST_CONDUCTANCE_HINT_HPP 23134 const std::shared_ptr<Name> &ion);
23188 return "ConductanceHint";
23203 return "CONDUCTANCE ";
23210 return std::static_pointer_cast<
ConductanceHint>(shared_from_this());
23217 return std::static_pointer_cast<
const ConductanceHint>(shared_from_this());
23236 return conductance;
23242 const std::shared_ptr<Name> &
get_ion() const noexcept {
return ion; }
23253 token = std::make_shared<ModToken>(tok);
23260 void set_conductance(std::shared_ptr<Name> &&conductance);
23265 void set_conductance(
const std::shared_ptr<Name> &conductance);
23271 void set_ion(std::shared_ptr<Name> &&ion);
23276 void set_ion(
const std::shared_ptr<Name> &ion);
23338 void set_parent_in_children();
23345 #endif // !NMODL_AST_CONDUCTANCE_HINT_HPP 23346 #ifndef NMODL_AST_EXPRESSION_STATEMENT_HPP 23347 #define NMODL_AST_EXPRESSION_STATEMENT_HPP 23431 return "ExpressionStatement";
23446 shared_from_this());
23477 token = std::make_shared<ModToken>(tok);
23484 void set_expression(std::shared_ptr<Expression> &&expression);
23489 void set_expression(
const std::shared_ptr<Expression> &expression);
23551 void set_parent_in_children();
23558 #endif // !NMODL_AST_EXPRESSION_STATEMENT_HPP 23559 #ifndef NMODL_AST_PROTECT_STATEMENT_HPP 23560 #define NMODL_AST_PROTECT_STATEMENT_HPP 23644 return "ProtectStatement";
23671 return std::static_pointer_cast<
const ProtectStatement>(shared_from_this());
23702 token = std::make_shared<ModToken>(tok);
23709 void set_expression(std::shared_ptr<Expression> &&expression);
23714 void set_expression(
const std::shared_ptr<Expression> &expression);
23776 void set_parent_in_children();
23783 #endif // !NMODL_AST_PROTECT_STATEMENT_HPP 23784 #ifndef NMODL_AST_FROM_STATEMENT_HPP 23785 #define NMODL_AST_FROM_STATEMENT_HPP 23808 std::shared_ptr<Expression>
to;
23824 const std::shared_ptr<Name> &name,
23825 const std::shared_ptr<Expression> &from,
23826 const std::shared_ptr<Expression> &to,
23827 const std::shared_ptr<Expression> &increment,
23828 const std::shared_ptr<StatementBlock> &statement_block);
23882 return "FromStatement";
23902 return std::static_pointer_cast<
FromStatement>(shared_from_this());
23909 return std::static_pointer_cast<
const FromStatement>(shared_from_this());
23940 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
23945 const std::shared_ptr<Expression> &
get_from() const noexcept {
return from; }
23950 const std::shared_ptr<Expression> &
get_to() const noexcept {
return to; }
23963 noexcept
override {
23964 return statement_block;
23976 token = std::make_shared<ModToken>(tok);
23983 void set_name(std::shared_ptr<Name> &&name);
23988 void set_name(
const std::shared_ptr<Name> &name);
23994 void set_from(std::shared_ptr<Expression> &&from);
23999 void set_from(
const std::shared_ptr<Expression> &from);
24004 void set_to(std::shared_ptr<Expression> &&to);
24009 void set_to(
const std::shared_ptr<Expression> &to);
24015 void set_increment(std::shared_ptr<Expression> &&increment);
24020 void set_increment(
const std::shared_ptr<Expression> &increment);
24026 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
24032 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
24094 void set_parent_in_children();
24101 #endif // !NMODL_AST_FROM_STATEMENT_HPP 24102 #ifndef NMODL_AST_FOR_ALL_STATEMENT_HPP 24103 #define NMODL_AST_FOR_ALL_STATEMENT_HPP 24134 const std::shared_ptr<Name> &name,
24135 const std::shared_ptr<StatementBlock> &statement_block);
24189 return "ForAllStatement";
24209 return std::static_pointer_cast<
ForAllStatement>(shared_from_this());
24216 return std::static_pointer_cast<
const ForAllStatement>(shared_from_this());
24234 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
24240 noexcept
override {
24241 return statement_block;
24253 token = std::make_shared<ModToken>(tok);
24260 void set_name(std::shared_ptr<Name> &&name);
24265 void set_name(
const std::shared_ptr<Name> &name);
24271 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
24277 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
24339 void set_parent_in_children();
24346 #endif // !NMODL_AST_FOR_ALL_STATEMENT_HPP 24347 #ifndef NMODL_AST_WHILE_STATEMENT_HPP 24348 #define NMODL_AST_WHILE_STATEMENT_HPP 24380 const std::shared_ptr<Expression> &condition,
24381 const std::shared_ptr<StatementBlock> &statement_block);
24435 return "WhileStatement";
24455 return std::static_pointer_cast<
WhileStatement>(shared_from_this());
24462 return std::static_pointer_cast<
const WhileStatement>(shared_from_this());
24488 noexcept
override {
24489 return statement_block;
24501 token = std::make_shared<ModToken>(tok);
24508 void set_condition(std::shared_ptr<Expression> &&condition);
24513 void set_condition(
const std::shared_ptr<Expression> &condition);
24519 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
24525 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
24587 void set_parent_in_children();
24594 #endif // !NMODL_AST_WHILE_STATEMENT_HPP 24595 #ifndef NMODL_AST_IF_STATEMENT_HPP 24596 #define NMODL_AST_IF_STATEMENT_HPP 24631 explicit IfStatement(
const std::shared_ptr<Expression> &condition,
24632 const std::shared_ptr<StatementBlock> &statement_block,
24634 const std::shared_ptr<ElseStatement> &elses);
24688 return "IfStatement";
24708 return std::static_pointer_cast<
IfStatement>(shared_from_this());
24715 return std::static_pointer_cast<
const IfStatement>(shared_from_this());
24741 noexcept
override {
24742 return statement_block;
24753 const std::shared_ptr<ElseStatement> &
get_elses() const noexcept {
24766 token = std::make_shared<ModToken>(tok);
24773 void set_condition(std::shared_ptr<Expression> &&condition);
24778 void set_condition(
const std::shared_ptr<Expression> &condition);
24784 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
24790 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
24806 void set_elses(std::shared_ptr<ElseStatement> &&elses);
24811 void set_elses(
const std::shared_ptr<ElseStatement> &elses);
24873 void set_parent_in_children();
24880 #endif // !NMODL_AST_IF_STATEMENT_HPP 24881 #ifndef NMODL_AST_ELSE_IF_STATEMENT_HPP 24882 #define NMODL_AST_ELSE_IF_STATEMENT_HPP 24914 const std::shared_ptr<Expression> &condition,
24915 const std::shared_ptr<StatementBlock> &statement_block);
24969 return "ElseIfStatement";
24989 return std::static_pointer_cast<
ElseIfStatement>(shared_from_this());
24996 return std::static_pointer_cast<
const ElseIfStatement>(shared_from_this());
25022 noexcept
override {
25023 return statement_block;
25035 token = std::make_shared<ModToken>(tok);
25042 void set_condition(std::shared_ptr<Expression> &&condition);
25047 void set_condition(
const std::shared_ptr<Expression> &condition);
25053 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
25059 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
25121 void set_parent_in_children();
25128 #endif // !NMODL_AST_ELSE_IF_STATEMENT_HPP 25129 #ifndef NMODL_AST_ELSE_STATEMENT_HPP 25130 #define NMODL_AST_ELSE_STATEMENT_HPP 25159 const std::shared_ptr<StatementBlock> &statement_block);
25213 return "ElseStatement";
25233 return std::static_pointer_cast<
ElseStatement>(shared_from_this());
25240 return std::static_pointer_cast<
const ElseStatement>(shared_from_this());
25259 noexcept
override {
25260 return statement_block;
25272 token = std::make_shared<ModToken>(tok);
25279 void set_statement_block(std::shared_ptr<StatementBlock> &&statement_block);
25285 set_statement_block(
const std::shared_ptr<StatementBlock> &statement_block);
25347 void set_parent_in_children();
25354 #endif // !NMODL_AST_ELSE_STATEMENT_HPP 25355 #ifndef NMODL_AST_PARTIAL_EQUATION_HPP 25356 #define NMODL_AST_PARTIAL_EQUATION_HPP 25392 const std::shared_ptr<Name> &name1,
25393 const std::shared_ptr<Name> &name2,
25394 const std::shared_ptr<Name> &name3);
25448 return "PartialEquation";
25455 return std::static_pointer_cast<
PartialEquation>(shared_from_this());
25462 return std::static_pointer_cast<
const PartialEquation>(shared_from_this());
25480 const std::shared_ptr<PrimeName> &
get_prime() const noexcept {
return prime; }
25485 const std::shared_ptr<Name> &
get_name1() const noexcept {
return name1; }
25490 const std::shared_ptr<Name> &
get_name2() const noexcept {
return name2; }
25495 const std::shared_ptr<Name> &
get_name3() const noexcept {
return name3; }
25506 token = std::make_shared<ModToken>(tok);
25513 void set_prime(std::shared_ptr<PrimeName> &&prime);
25518 void set_prime(
const std::shared_ptr<PrimeName> &prime);
25524 void set_name1(std::shared_ptr<Name> &&name1);
25529 void set_name1(
const std::shared_ptr<Name> &name1);
25535 void set_name2(std::shared_ptr<Name> &&name2);
25540 void set_name2(
const std::shared_ptr<Name> &name2);
25546 void set_name3(std::shared_ptr<Name> &&name3);
25551 void set_name3(
const std::shared_ptr<Name> &name3);
25613 void set_parent_in_children();
25620 #endif // !NMODL_AST_PARTIAL_EQUATION_HPP 25621 #ifndef NMODL_AST_PARTIAL_BOUNDARY_HPP 25622 #define NMODL_AST_PARTIAL_BOUNDARY_HPP 25667 const std::shared_ptr<Identifier> &name,
25668 const std::shared_ptr<FirstLastTypeIndex> &index,
25669 const std::shared_ptr<Expression> &expression,
25670 const std::shared_ptr<Name> &name1,
25671 const std::shared_ptr<Name> &del2,
25672 const std::shared_ptr<Name> &name2,
25673 const std::shared_ptr<Name> &name3);
25727 return "PartialBoundary";
25747 return std::static_pointer_cast<
PartialBoundary>(shared_from_this());
25754 return std::static_pointer_cast<
const PartialBoundary>(shared_from_this());
25772 const std::shared_ptr<Name> &
get_del() const noexcept {
return del; }
25777 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
25782 const std::shared_ptr<FirstLastTypeIndex> &
get_index() const noexcept {
25796 const std::shared_ptr<Name> &
get_name1() const noexcept {
return name1; }
25801 const std::shared_ptr<Name> &
get_del2() const noexcept {
return del2; }
25806 const std::shared_ptr<Name> &
get_name2() const noexcept {
return name2; }
25811 const std::shared_ptr<Name> &
get_name3() const noexcept {
return name3; }
25822 token = std::make_shared<ModToken>(tok);
25829 void set_del(std::shared_ptr<Name> &&del);
25834 void set_del(
const std::shared_ptr<Name> &del);
25840 void set_name(std::shared_ptr<Identifier> &&name);
25845 void set_name(
const std::shared_ptr<Identifier> &name);
25851 void set_index(std::shared_ptr<FirstLastTypeIndex> &&index);
25856 void set_index(
const std::shared_ptr<FirstLastTypeIndex> &index);
25862 void set_expression(std::shared_ptr<Expression> &&expression);
25867 void set_expression(
const std::shared_ptr<Expression> &expression);
25873 void set_name1(std::shared_ptr<Name> &&name1);
25878 void set_name1(
const std::shared_ptr<Name> &name1);
25884 void set_del2(std::shared_ptr<Name> &&del2);
25889 void set_del2(
const std::shared_ptr<Name> &del2);
25895 void set_name2(std::shared_ptr<Name> &&name2);
25900 void set_name2(
const std::shared_ptr<Name> &name2);
25906 void set_name3(std::shared_ptr<Name> &&name3);
25911 void set_name3(
const std::shared_ptr<Name> &name3);
25973 void set_parent_in_children();
25980 #endif // !NMODL_AST_PARTIAL_BOUNDARY_HPP 25981 #ifndef NMODL_AST_WATCH_STATEMENT_HPP 25982 #define NMODL_AST_WATCH_STATEMENT_HPP 25983 #define NMODL_AST_WATCH_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 26064 return "WatchStatement";
26084 return std::static_pointer_cast<
WatchStatement>(shared_from_this());
26091 return std::static_pointer_cast<
const WatchStatement>(shared_from_this());
26109 void emplace_back_watch(
Watch *n);
26114 void emplace_back_watch(std::shared_ptr<Watch> n);
26119 WatchVector::const_iterator erase_watch(WatchVector::const_iterator first);
26124 WatchVector::const_iterator erase_watch(WatchVector::const_iterator first,
26125 WatchVector::const_iterator last);
26132 size_t erase_watch(std::unordered_set<Watch *> &to_be_erased);
26137 WatchVector::const_iterator insert_watch(WatchVector::const_iterator position,
26138 const std::shared_ptr<Watch> &n);
26143 template <
class NodeType,
class InputIterator>
26144 void insert_watch(WatchVector::const_iterator position, NodeType &to,
26145 InputIterator first, InputIterator last);
26150 void reset_watch(WatchVector::const_iterator position,
Watch *n);
26155 void reset_watch(WatchVector::const_iterator position,
26156 std::shared_ptr<Watch> n);
26172 token = std::make_shared<ModToken>(tok);
26184 void set_statements(
const WatchVector &statements);
26246 void set_parent_in_children();
26253 #endif // !NMODL_AST_WATCH_STATEMENT_HPP 26254 #ifndef NMODL_AST_MUTEX_LOCK_HPP 26255 #define NMODL_AST_MUTEX_LOCK_HPP 26331 return "MutexLock";
26351 return std::static_pointer_cast<
MutexLock>(shared_from_this());
26358 return std::static_pointer_cast<
const MutexLock>(shared_from_this());
26382 token = std::make_shared<ModToken>(tok);
26442 #endif // !NMODL_AST_MUTEX_LOCK_HPP 26443 #ifndef NMODL_AST_MUTEX_UNLOCK_HPP 26444 #define NMODL_AST_MUTEX_UNLOCK_HPP 26520 return "MutexUnlock";
26540 return std::static_pointer_cast<
MutexUnlock>(shared_from_this());
26547 return std::static_pointer_cast<
const MutexUnlock>(shared_from_this());
26571 token = std::make_shared<ModToken>(tok);
26631 #endif // !NMODL_AST_MUTEX_UNLOCK_HPP 26632 #ifndef NMODL_AST_RESET_HPP 26633 #define NMODL_AST_RESET_HPP 26658 virtual ~
Reset() =
default;
26727 return std::static_pointer_cast<
Reset>(shared_from_this());
26734 return std::static_pointer_cast<
const Reset>(shared_from_this());
26758 token = std::make_shared<ModToken>(tok);
26818 #endif // !NMODL_AST_RESET_HPP 26819 #ifndef NMODL_AST_SENS_HPP 26820 #define NMODL_AST_SENS_HPP 26850 virtual ~
Sens() =
default;
26858 bool is_sens() const noexcept
override {
return true; }
26919 return std::static_pointer_cast<
Sens>(shared_from_this());
26926 return std::static_pointer_cast<
const Sens>(shared_from_this());
26955 token = std::make_shared<ModToken>(tok);
27028 void set_parent_in_children();
27035 #endif // !NMODL_AST_SENS_HPP 27036 #ifndef NMODL_AST_CONSERVE_HPP 27037 #define NMODL_AST_CONSERVE_HPP 27067 explicit Conserve(
const std::shared_ptr<Expression> &react,
27068 const std::shared_ptr<Expression> &expr);
27142 return std::static_pointer_cast<
Conserve>(shared_from_this());
27149 return std::static_pointer_cast<
const Conserve>(shared_from_this());
27174 const std::shared_ptr<Expression> &
get_expr() const noexcept {
return expr; }
27185 token = std::make_shared<ModToken>(tok);
27191 void set_react(std::shared_ptr<Expression> &&react);
27196 void set_react(
const std::shared_ptr<Expression> &react);
27201 void set_expr(std::shared_ptr<Expression> &&expr);
27206 void set_expr(
const std::shared_ptr<Expression> &expr);
27268 void set_parent_in_children();
27275 #endif // !NMODL_AST_CONSERVE_HPP 27276 #ifndef NMODL_AST_COMPARTMENT_HPP 27277 #define NMODL_AST_COMPARTMENT_HPP 27309 explicit Compartment(
const std::shared_ptr<Name> &name,
27310 const std::shared_ptr<Expression> &expression,
27365 return "Compartment";
27385 return std::static_pointer_cast<
Compartment>(shared_from_this());
27392 return std::static_pointer_cast<
const Compartment>(shared_from_this());
27410 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
27433 token = std::make_shared<ModToken>(tok);
27439 void set_name(std::shared_ptr<Name> &&name);
27444 void set_name(
const std::shared_ptr<Name> &name);
27450 void set_expression(std::shared_ptr<Expression> &&expression);
27455 void set_expression(
const std::shared_ptr<Expression> &expression);
27527 void set_parent_in_children();
27534 #endif // !NMODL_AST_COMPARTMENT_HPP 27535 #ifndef NMODL_AST_LON_DIFUSE_HPP 27536 #define NMODL_AST_LON_DIFUSE_HPP 27568 explicit LonDifuse(
const std::shared_ptr<Name> &name,
27569 const std::shared_ptr<Expression> &expression,
27624 return "LonDifuse";
27639 return "LONGITUDINAL_DIFFUSION";
27646 return std::static_pointer_cast<
LonDifuse>(shared_from_this());
27653 return std::static_pointer_cast<
const LonDifuse>(shared_from_this());
27671 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
27694 token = std::make_shared<ModToken>(tok);
27700 void set_name(std::shared_ptr<Name> &&name);
27705 void set_name(
const std::shared_ptr<Name> &name);
27711 void set_expression(std::shared_ptr<Expression> &&expression);
27716 void set_expression(
const std::shared_ptr<Expression> &expression);
27788 void set_parent_in_children();
27795 #endif // !NMODL_AST_LON_DIFUSE_HPP 27796 #ifndef NMODL_AST_REACTION_STATEMENT_HPP 27797 #define NMODL_AST_REACTION_STATEMENT_HPP 27837 const std::shared_ptr<Expression> &reaction2,
27838 const std::shared_ptr<Expression> &expression1,
27839 const std::shared_ptr<Expression> &expression2);
27895 return "ReactionStatement";
27923 shared_from_this());
27961 return expression1;
27968 return expression2;
27980 token = std::make_shared<ModToken>(tok);
27987 void set_reaction1(std::shared_ptr<Expression> &&reaction1);
27992 void set_reaction1(
const std::shared_ptr<Expression> &reaction1);
28009 void set_reaction2(std::shared_ptr<Expression> &&reaction2);
28014 void set_reaction2(
const std::shared_ptr<Expression> &reaction2);
28020 void set_expression1(std::shared_ptr<Expression> &&expression1);
28025 void set_expression1(
const std::shared_ptr<Expression> &expression1);
28031 void set_expression2(std::shared_ptr<Expression> &&expression2);
28036 void set_expression2(
const std::shared_ptr<Expression> &expression2);
28098 void set_parent_in_children();
28105 #endif // !NMODL_AST_REACTION_STATEMENT_HPP 28106 #ifndef NMODL_AST_LAG_STATEMENT_HPP 28107 #define NMODL_AST_LAG_STATEMENT_HPP 28146 explicit LagStatement(
const std::shared_ptr<Identifier> &name,
28147 const std::shared_ptr<Name> &byname);
28201 return "LagStatement";
28221 return std::static_pointer_cast<
LagStatement>(shared_from_this());
28228 return std::static_pointer_cast<
const LagStatement>(shared_from_this());
28246 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
28251 const std::shared_ptr<Name> &
get_byname() const noexcept {
return byname; }
28262 token = std::make_shared<ModToken>(tok);
28268 void set_name(std::shared_ptr<Identifier> &&name);
28273 void set_name(
const std::shared_ptr<Identifier> &name);
28279 void set_byname(std::shared_ptr<Name> &&byname);
28284 void set_byname(
const std::shared_ptr<Name> &byname);
28346 void set_parent_in_children();
28353 #endif // !NMODL_AST_LAG_STATEMENT_HPP 28354 #ifndef NMODL_AST_QUEUE_STATEMENT_HPP 28355 #define NMODL_AST_QUEUE_STATEMENT_HPP 28385 explicit QueueStatement(
const std::shared_ptr<QueueExpressionType> &qtype,
28386 const std::shared_ptr<Identifier> &name);
28440 return "QueueStatement";
28447 return std::static_pointer_cast<
QueueStatement>(shared_from_this());
28454 return std::static_pointer_cast<
const QueueStatement>(shared_from_this());
28472 const std::shared_ptr<QueueExpressionType> &
get_qtype() const noexcept {
28479 const std::shared_ptr<Identifier> &
get_name() const noexcept {
return name; }
28490 token = std::make_shared<ModToken>(tok);
28497 void set_qtype(std::shared_ptr<QueueExpressionType> &&qtype);
28502 void set_qtype(
const std::shared_ptr<QueueExpressionType> &qtype);
28508 void set_name(std::shared_ptr<Identifier> &&name);
28513 void set_name(
const std::shared_ptr<Identifier> &name);
28575 void set_parent_in_children();
28582 #endif // !NMODL_AST_QUEUE_STATEMENT_HPP 28583 #ifndef NMODL_AST_CONSTANT_STATEMENT_HPP 28584 #define NMODL_AST_CONSTANT_STATEMENT_HPP 28670 return "ConstantStatement";
28685 shared_from_this());
28716 token = std::make_shared<ModToken>(tok);
28723 void set_constant(std::shared_ptr<ConstantVar> &&constant);
28728 void set_constant(
const std::shared_ptr<ConstantVar> &constant);
28790 void set_parent_in_children();
28797 #endif // !NMODL_AST_CONSTANT_STATEMENT_HPP 28798 #ifndef NMODL_AST_TABLE_STATEMENT_HPP 28799 #define NMODL_AST_TABLE_STATEMENT_HPP 28824 std::shared_ptr<Expression>
to;
28838 const std::shared_ptr<Expression> &from,
28839 const std::shared_ptr<Expression> &to,
28840 const std::shared_ptr<Integer> &with);
28894 return "TableStatement";
28914 return std::static_pointer_cast<
TableStatement>(shared_from_this());
28921 return std::static_pointer_cast<
const TableStatement>(shared_from_this());
28949 const std::shared_ptr<Expression> &
get_from() const noexcept {
return from; }
28954 const std::shared_ptr<Expression> &
get_to() const noexcept {
return to; }
28959 const std::shared_ptr<Integer> &
get_with() const noexcept {
return with; }
28970 token = std::make_shared<ModToken>(tok);
28977 void set_table_vars(
NameVector &&table_vars);
28982 void set_table_vars(
const NameVector &table_vars);
28988 void set_depend_vars(
NameVector &&depend_vars);
28993 void set_depend_vars(
const NameVector &depend_vars);
28999 void set_from(std::shared_ptr<Expression> &&from);
29004 void set_from(
const std::shared_ptr<Expression> &from);
29009 void set_to(std::shared_ptr<Expression> &&to);
29014 void set_to(
const std::shared_ptr<Expression> &to);
29020 void set_with(std::shared_ptr<Integer> &&with);
29025 void set_with(
const std::shared_ptr<Integer> &with);
29087 void set_parent_in_children();
29094 #endif // !NMODL_AST_TABLE_STATEMENT_HPP 29095 #ifndef NMODL_AST_SUFFIX_HPP 29096 #define NMODL_AST_SUFFIX_HPP 29126 explicit Suffix(
const std::shared_ptr<Name> &type,
29127 const std::shared_ptr<Name> &name);
29130 virtual ~
Suffix() =
default;
29186 return std::static_pointer_cast<
Suffix>(shared_from_this());
29193 return std::static_pointer_cast<
const Suffix>(shared_from_this());
29211 const std::shared_ptr<Name> &
get_type() const noexcept {
return type; }
29229 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
29240 token = std::make_shared<ModToken>(tok);
29246 void set_type(std::shared_ptr<Name> &&type);
29251 void set_type(
const std::shared_ptr<Name> &type);
29256 void set_name(std::shared_ptr<Name> &&name);
29261 void set_name(
const std::shared_ptr<Name> &name);
29323 void set_parent_in_children();
29330 #endif // !NMODL_AST_SUFFIX_HPP 29331 #ifndef NMODL_AST_USEION_HPP 29332 #define NMODL_AST_USEION_HPP 29370 explicit Useion(
const std::shared_ptr<Name> &name,
29373 const std::shared_ptr<Valence> &valence,
29374 const std::shared_ptr<String> &ontology_id);
29377 virtual ~
Useion() =
default;
29446 return std::static_pointer_cast<
Useion>(shared_from_this());
29453 return std::static_pointer_cast<
const Useion>(shared_from_this());
29484 const std::shared_ptr<Name> &
get_name() const noexcept {
return name; }
29507 return ontology_id;
29519 token = std::make_shared<ModToken>(tok);
29525 void set_name(std::shared_ptr<Name> &&name);
29530 void set_name(
const std::shared_ptr<Name> &name);
29555 void set_valence(std::shared_ptr<Valence> &&valence);
29560 void set_valence(
const std::shared_ptr<Valence> &valence);
29566 void set_ontology_id(std::shared_ptr<String> &&ontology_id);
29571 void set_ontology_id(
const std::shared_ptr<String> &ontology_id);
29633 void set_parent_in_children();
29640 #endif // !NMODL_AST_USEION_HPP 29641 #ifndef NMODL_AST_NONSPECIFIC_HPP 29642 #define NMODL_AST_NONSPECIFIC_HPP 29723 return "Nonspecific";
29738 return "NONSPECIFIC_CURRENT ";
29745 return std::static_pointer_cast<
Nonspecific>(shared_from_this());
29752 return std::static_pointer_cast<
const Nonspecific>(shared_from_this());
29783 token = std::make_shared<ModToken>(tok);
29857 void set_parent_in_children();
29864 #endif // !NMODL_AST_NONSPECIFIC_HPP 29865 #ifndef NMODL_AST_ELECTRODE_CURRENT_HPP 29866 #define NMODL_AST_ELECTRODE_CURRENT_HPP 29949 return "ElectrodeCurrent";
29964 return "ELECTRODE_CURRENT ";
29978 return std::static_pointer_cast<
const ElectrodeCurrent>(shared_from_this());
30009 token = std::make_shared<ModToken>(tok);
30083 void set_parent_in_children();
30090 #endif // !NMODL_AST_ELECTRODE_CURRENT_HPP 30091 #ifndef NMODL_AST_SECTION_HPP 30092 #define NMODL_AST_SECTION_HPP 30122 virtual ~
Section() =
default;
30191 return std::static_pointer_cast<
Section>(shared_from_this());
30198 return std::static_pointer_cast<
const Section>(shared_from_this());
30227 token = std::make_shared<ModToken>(tok);
30300 void set_parent_in_children();
30307 #endif // !NMODL_AST_SECTION_HPP 30308 #ifndef NMODL_AST_RANGE_HPP 30309 #define NMODL_AST_RANGE_HPP 30339 virtual ~
Range() =
default;
30408 return std::static_pointer_cast<
Range>(shared_from_this());
30415 return std::static_pointer_cast<
const Range>(shared_from_this());
30444 token = std::make_shared<ModToken>(tok);
30517 void set_parent_in_children();
30524 #endif // !NMODL_AST_RANGE_HPP 30525 #ifndef NMODL_AST_GLOBAL_HPP 30526 #define NMODL_AST_GLOBAL_HPP 30527 #define NMODL_AST_GLOBAL_HPP_INLINE_DEFINITION_REQUIRED 30557 virtual ~
Global() =
default;
30626 return std::static_pointer_cast<
Global>(shared_from_this());
30633 return std::static_pointer_cast<
const Global>(shared_from_this());
30651 void emplace_back_global_var(
GlobalVar *n);
30656 void emplace_back_global_var(std::shared_ptr<GlobalVar> n);
30661 GlobalVarVector::const_iterator
30662 erase_global_var(GlobalVarVector::const_iterator first);
30667 GlobalVarVector::const_iterator
30668 erase_global_var(GlobalVarVector::const_iterator first,
30669 GlobalVarVector::const_iterator last);
30676 size_t erase_global_var(std::unordered_set<GlobalVar *> &to_be_erased);
30681 GlobalVarVector::const_iterator
30682 insert_global_var(GlobalVarVector::const_iterator position,
30683 const std::shared_ptr<GlobalVar> &n);
30688 template <
class NodeType,
class InputIterator>
30689 void insert_global_var(GlobalVarVector::const_iterator position, NodeType &to,
30690 InputIterator first, InputIterator last);
30695 void reset_global_var(GlobalVarVector::const_iterator position,
GlobalVar *n);
30700 void reset_global_var(GlobalVarVector::const_iterator position,
30701 std::shared_ptr<GlobalVar> n);
30717 token = std::make_shared<ModToken>(tok);
30790 void set_parent_in_children();
30797 #endif // !NMODL_AST_GLOBAL_HPP 30798 #ifndef NMODL_AST_POINTER_HPP 30799 #define NMODL_AST_POINTER_HPP 30829 virtual ~
Pointer() =
default;
30898 return std::static_pointer_cast<
Pointer>(shared_from_this());
30905 return std::static_pointer_cast<
const Pointer>(shared_from_this());
30934 token = std::make_shared<ModToken>(tok);
31007 void set_parent_in_children();
31014 #endif // !NMODL_AST_POINTER_HPP 31015 #ifndef NMODL_AST_BBCORE_POINTER_HPP 31016 #define NMODL_AST_BBCORE_POINTER_HPP 31105 return "BbcorePointer";
31120 return "BBCOREPOINTER ";
31127 return std::static_pointer_cast<
BbcorePointer>(shared_from_this());
31134 return std::static_pointer_cast<
const BbcorePointer>(shared_from_this());
31165 token = std::make_shared<ModToken>(tok);
31239 void set_parent_in_children();
31246 #endif // !NMODL_AST_BBCORE_POINTER_HPP 31247 #ifndef NMODL_AST_EXTERNAL_HPP 31248 #define NMODL_AST_EXTERNAL_HPP 31349 return std::static_pointer_cast<
External>(shared_from_this());
31356 return std::static_pointer_cast<
const External>(shared_from_this());
31385 token = std::make_shared<ModToken>(tok);
31459 void set_parent_in_children();
31466 #endif // !NMODL_AST_EXTERNAL_HPP 31467 #ifndef NMODL_AST_THREAD_SAFE_HPP 31468 #define NMODL_AST_THREAD_SAFE_HPP 31549 return "ThreadSafe";
31569 return std::static_pointer_cast<
ThreadSafe>(shared_from_this());
31576 return std::static_pointer_cast<
const ThreadSafe>(shared_from_this());
31607 token = std::make_shared<ModToken>(tok);
31681 void set_parent_in_children();
31688 #endif // !NMODL_AST_THREAD_SAFE_HPP 31689 #ifndef NMODL_AST_VERBATIM_HPP 31690 #define NMODL_AST_VERBATIM_HPP 31718 explicit Verbatim(
const std::shared_ptr<String> &statement);
31792 return std::static_pointer_cast<
Verbatim>(shared_from_this());
31799 return std::static_pointer_cast<
const Verbatim>(shared_from_this());
31830 token = std::make_shared<ModToken>(tok);
31837 void set_statement(std::shared_ptr<String> &&statement);
31842 void set_statement(
const std::shared_ptr<String> &statement);
31904 void set_parent_in_children();
31911 #endif // !NMODL_AST_VERBATIM_HPP 31912 #ifndef NMODL_AST_LINE_COMMENT_HPP 31913 #define NMODL_AST_LINE_COMMENT_HPP 31941 explicit LineComment(
const std::shared_ptr<String> &statement);
31995 return "LineComment";
32002 return std::static_pointer_cast<
LineComment>(shared_from_this());
32009 return std::static_pointer_cast<
const LineComment>(shared_from_this());
32040 token = std::make_shared<ModToken>(tok);
32047 void set_statement(std::shared_ptr<String> &&statement);
32052 void set_statement(
const std::shared_ptr<String> &statement);
32114 void set_parent_in_children();
32121 #endif // !NMODL_AST_LINE_COMMENT_HPP 32122 #ifndef NMODL_AST_BLOCK_COMMENT_HPP 32123 #define NMODL_AST_BLOCK_COMMENT_HPP 32151 explicit BlockComment(
const std::shared_ptr<String> &statement);
32205 return "BlockComment";
32225 return std::static_pointer_cast<
BlockComment>(shared_from_this());
32232 return std::static_pointer_cast<
const BlockComment>(shared_from_this());
32263 token = std::make_shared<ModToken>(tok);
32270 void set_statement(std::shared_ptr<String> &&statement);
32275 void set_statement(
const std::shared_ptr<String> &statement);
32337 void set_parent_in_children();
32344 #endif // !NMODL_AST_BLOCK_COMMENT_HPP 32345 #ifndef NMODL_AST_ONTOLOGY_STATEMENT_HPP 32346 #define NMODL_AST_ONTOLOGY_STATEMENT_HPP 32430 return "OntologyStatement";
32458 shared_from_this());
32477 return ontology_id;
32489 token = std::make_shared<ModToken>(tok);
32496 void set_ontology_id(std::shared_ptr<String> &&ontology_id);
32501 void set_ontology_id(
const std::shared_ptr<String> &ontology_id);
32563 void set_parent_in_children();
32570 #endif // !NMODL_AST_ONTOLOGY_STATEMENT_HPP 32571 #ifndef NMODL_AST_PROGRAM_HPP 32572 #define NMODL_AST_PROGRAM_HPP 32573 #define NMODL_AST_PROGRAM_HPP_INLINE_DEFINITION_REQUIRED 32609 virtual ~
Program() =
default;
32665 return std::static_pointer_cast<
Program>(shared_from_this());
32672 return std::static_pointer_cast<
const Program>(shared_from_this());
32708 void emplace_back_node(
Node *n);
32713 void emplace_back_node(std::shared_ptr<Node> n);
32718 NodeVector::const_iterator erase_node(NodeVector::const_iterator first);
32723 NodeVector::const_iterator erase_node(NodeVector::const_iterator first,
32724 NodeVector::const_iterator last);
32731 size_t erase_node(std::unordered_set<Node *> &to_be_erased);
32736 NodeVector::const_iterator insert_node(NodeVector::const_iterator position,
32737 const std::shared_ptr<Node> &n);
32742 template <
class NodeType,
class InputIterator>
32743 void insert_node(NodeVector::const_iterator position, NodeType &to,
32744 InputIterator first, InputIterator last);
32749 void reset_node(NodeVector::const_iterator position,
Node *n);
32754 void reset_node(NodeVector::const_iterator position, std::shared_ptr<Node> n);
32770 token = std::make_shared<ModToken>(tok);
32783 symtab = newsymtab;
32856 void set_parent_in_children();
32863 #endif // !NMODL_AST_PROGRAM_HPP 32864 #ifndef NMODL_AST_NRN_STATE_BLOCK_HPP 32865 #define NMODL_AST_NRN_STATE_BLOCK_HPP 32948 return "NrnStateBlock";
32968 return std::static_pointer_cast<
NrnStateBlock>(shared_from_this());
32975 return std::static_pointer_cast<
const NrnStateBlock>(shared_from_this());
33007 return solve_statements;
33019 token = std::make_shared<ModToken>(tok);
33032 symtab = newsymtab;
33106 void set_parent_in_children();
33113 #endif // !NMODL_AST_NRN_STATE_BLOCK_HPP 33114 #ifndef NMODL_AST_EIGEN_NEWTON_SOLVER_BLOCK_HPP 33115 #define NMODL_AST_EIGEN_NEWTON_SOLVER_BLOCK_HPP 33164 const std::shared_ptr<Integer> &n_state_vars,
33165 const std::shared_ptr<StatementBlock> &variable_block,
33166 const std::shared_ptr<StatementBlock> &initialize_block,
33167 const std::shared_ptr<StatementBlock> &setup_x_block,
33168 const std::shared_ptr<StatementBlock> &functor_block,
33169 const std::shared_ptr<StatementBlock> &update_states_block,
33170 const std::shared_ptr<StatementBlock> &finalize_block);
33226 return "EigenNewtonSolverBlock";
33241 return "EIGEN_NEWTON_SOLVE";
33256 shared_from_this());
33288 return n_state_vars;
33296 return variable_block;
33304 return initialize_block;
33311 return setup_x_block;
33318 return functor_block;
33327 return update_states_block;
33335 return finalize_block;
33347 token = std::make_shared<ModToken>(tok);
33360 symtab = newsymtab;
33367 void set_n_state_vars(std::shared_ptr<Integer> &&n_state_vars);
33372 void set_n_state_vars(
const std::shared_ptr<Integer> &n_state_vars);
33378 void set_variable_block(std::shared_ptr<StatementBlock> &&variable_block);
33385 set_variable_block(
const std::shared_ptr<StatementBlock> &variable_block);
33391 void set_initialize_block(std::shared_ptr<StatementBlock> &&initialize_block);
33398 set_initialize_block(
const std::shared_ptr<StatementBlock> &initialize_block);
33404 void set_setup_x_block(std::shared_ptr<StatementBlock> &&setup_x_block);
33409 void set_setup_x_block(
const std::shared_ptr<StatementBlock> &setup_x_block);
33415 void set_functor_block(std::shared_ptr<StatementBlock> &&functor_block);
33420 void set_functor_block(
const std::shared_ptr<StatementBlock> &functor_block);
33426 void set_update_states_block(
33427 std::shared_ptr<StatementBlock> &&update_states_block);
33433 void set_update_states_block(
33434 const std::shared_ptr<StatementBlock> &update_states_block);
33440 void set_finalize_block(std::shared_ptr<StatementBlock> &&finalize_block);
33447 set_finalize_block(
const std::shared_ptr<StatementBlock> &finalize_block);
33509 void set_parent_in_children();
33516 #endif // !NMODL_AST_EIGEN_NEWTON_SOLVER_BLOCK_HPP 33517 #ifndef NMODL_AST_EIGEN_LINEAR_SOLVER_BLOCK_HPP 33518 #define NMODL_AST_EIGEN_LINEAR_SOLVER_BLOCK_HPP 33564 const std::shared_ptr<Integer> &n_state_vars,
33565 const std::shared_ptr<StatementBlock> &variable_block,
33566 const std::shared_ptr<StatementBlock> &initialize_block,
33567 const std::shared_ptr<StatementBlock> &setup_x_block,
33568 const std::shared_ptr<StatementBlock> &update_states_block,
33569 const std::shared_ptr<StatementBlock> &finalize_block);
33625 return "EigenLinearSolverBlock";
33640 return "EIGEN_LINEAR_SOLVE";
33655 shared_from_this());
33687 return n_state_vars;
33695 return variable_block;
33703 return initialize_block;
33710 return setup_x_block;
33719 return update_states_block;
33727 return finalize_block;
33739 token = std::make_shared<ModToken>(tok);
33752 symtab = newsymtab;
33759 void set_n_state_vars(std::shared_ptr<Integer> &&n_state_vars);
33764 void set_n_state_vars(
const std::shared_ptr<Integer> &n_state_vars);
33770 void set_variable_block(std::shared_ptr<StatementBlock> &&variable_block);
33777 set_variable_block(
const std::shared_ptr<StatementBlock> &variable_block);
33783 void set_initialize_block(std::shared_ptr<StatementBlock> &&initialize_block);
33790 set_initialize_block(
const std::shared_ptr<StatementBlock> &initialize_block);
33796 void set_setup_x_block(std::shared_ptr<StatementBlock> &&setup_x_block);
33801 void set_setup_x_block(
const std::shared_ptr<StatementBlock> &setup_x_block);
33807 void set_update_states_block(
33808 std::shared_ptr<StatementBlock> &&update_states_block);
33814 void set_update_states_block(
33815 const std::shared_ptr<StatementBlock> &update_states_block);
33821 void set_finalize_block(std::shared_ptr<StatementBlock> &&finalize_block);
33828 set_finalize_block(
const std::shared_ptr<StatementBlock> &finalize_block);
33890 void set_parent_in_children();
33897 #endif // !NMODL_AST_EIGEN_LINEAR_SOLVER_BLOCK_HPP 33898 #ifndef NMODL_AST_WRAPPED_EXPRESSION_HPP 33899 #define NMODL_AST_WRAPPED_EXPRESSION_HPP 33983 return "WrappedExpression";
33998 shared_from_this());
34029 token = std::make_shared<ModToken>(tok);
34036 void set_expression(std::shared_ptr<Expression> &&expression);
34041 void set_expression(
const std::shared_ptr<Expression> &expression);
34103 void set_parent_in_children();
34110 #endif // !NMODL_AST_WRAPPED_EXPRESSION_HPP 34111 #ifndef NMODL_AST_DERIVIMPLICIT_CALLBACK_HPP 34112 #define NMODL_AST_DERIVIMPLICIT_CALLBACK_HPP 34196 return "DerivimplicitCallback";
34211 shared_from_this());
34230 return node_to_solve;
34242 token = std::make_shared<ModToken>(tok);
34249 void set_node_to_solve(std::shared_ptr<Block> &&node_to_solve);
34254 void set_node_to_solve(
const std::shared_ptr<Block> &node_to_solve);
34316 void set_parent_in_children();
34323 #endif // !NMODL_AST_DERIVIMPLICIT_CALLBACK_HPP 34324 #ifndef NMODL_AST_SOLUTION_EXPRESSION_HPP 34325 #define NMODL_AST_SOLUTION_EXPRESSION_HPP 34357 const std::shared_ptr<Expression> &node_to_solve);
34413 return "SolutionExpression";
34428 shared_from_this());
34447 return solve_block;
34454 return node_to_solve;
34466 token = std::make_shared<ModToken>(tok);
34473 void set_solve_block(std::shared_ptr<SolveBlock> &&solve_block);
34478 void set_solve_block(
const std::shared_ptr<SolveBlock> &solve_block);
34484 void set_node_to_solve(std::shared_ptr<Expression> &&node_to_solve);
34489 void set_node_to_solve(
const std::shared_ptr<Expression> &node_to_solve);
34551 void set_parent_in_children();
34558 #endif // !NMODL_AST_SOLUTION_EXPRESSION_HPP 34559 #ifndef NMODL_AST_UPDATE_DT_HPP 34560 #define NMODL_AST_UPDATE_DT_HPP 34588 explicit UpdateDt(
const std::shared_ptr<Double> &value);
34662 return std::static_pointer_cast<
UpdateDt>(shared_from_this());
34669 return std::static_pointer_cast<
const UpdateDt>(shared_from_this());
34687 const std::shared_ptr<Double> &
get_value() const noexcept {
return value; }
34698 token = std::make_shared<ModToken>(tok);
34704 void set_value(std::shared_ptr<Double> &&value);
34709 void set_value(
const std::shared_ptr<Double> &value);
34771 void set_parent_in_children();
34778 #endif // !NMODL_AST_UPDATE_DT_HPP 34782 #ifdef NMODL_AST_ASSIGNED_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 34787 template <
class NodeType,
class InputIterator>
34789 AssignedDefinitionVector::const_iterator position, NodeType &to,
34790 InputIterator first, InputIterator last) {
34792 for (
auto it = first; it != last; ++it) {
34795 n->set_parent(
this);
34800 definitions.insert(pos_it, first_it, last_it);
34803 #endif // !NMODL_AST_ASSIGNED_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 34805 #ifdef NMODL_AST_STATEMENT_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 34810 template <
class NodeType,
class InputIterator>
34812 NodeType &to, InputIterator first,
34813 InputIterator last) {
34815 for (
auto it = first; it != last; ++it) {
34818 n->set_parent(
this);
34823 statements.insert(pos_it, first_it, last_it);
34826 #endif // !NMODL_AST_STATEMENT_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 34828 #ifdef NMODL_AST_LOCAL_LIST_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 34833 template <
class NodeType,
class InputIterator>
34835 LocalVarVector::const_iterator position, NodeType &to, InputIterator first,
34836 InputIterator last) {
34838 for (
auto it = first; it != last; ++it) {
34841 n->set_parent(
this);
34846 variables.insert(pos_it, first_it, last_it);
34849 #endif // !NMODL_AST_LOCAL_LIST_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 34851 #ifdef NMODL_AST_WATCH_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 34856 template <
class NodeType,
class InputIterator>
34858 NodeType &to, InputIterator first,
34859 InputIterator last) {
34861 for (
auto it = first; it != last; ++it) {
34864 n->set_parent(
this);
34869 statements.insert(pos_it, first_it, last_it);
34872 #endif // !NMODL_AST_WATCH_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 34874 #ifdef NMODL_AST_GLOBAL_HPP_INLINE_DEFINITION_REQUIRED 34879 template <
class NodeType,
class InputIterator>
34881 NodeType &to, InputIterator first,
34882 InputIterator last) {
34884 for (
auto it = first; it != last; ++it) {
34887 n->set_parent(
this);
34892 variables.insert(pos_it, first_it, last_it);
34895 #endif // !NMODL_AST_GLOBAL_HPP_INLINE_DEFINITION_REQUIRED 34897 #ifdef NMODL_AST_PROGRAM_HPP_INLINE_DEFINITION_REQUIRED 34902 template <
class NodeType,
class InputIterator>
34904 InputIterator first, InputIterator last) {
34906 for (
auto it = first; it != last; ++it) {
34909 n->set_parent(
this);
34914 blocks.insert(pos_it, first_it, last_it);
34917 #endif // !NMODL_AST_PROGRAM_HPP_INLINE_DEFINITION_REQUIRED std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
type of ast::DiscreteBlock
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::vector< std::shared_ptr< ExternVar > > ExternVarVector
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< StatementBlock > ifsolerr
Block to be executed on error.
static const std::string ReactionOpNames[]
string representation of ast::ReactionOp
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Name > steadystate
Name of the integration method.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > length
legth of an array or index position
const std::shared_ptr< Integer > & get_with() const noexcept
Getter for member variable TableStatement::with.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
ThreadsafeVar * clone() const override
Return a copy of the current node.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< StatementBlock > statement_block
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::ConductanceHint
bool is_lag_statement() const noexcept override
Check if the ast node is an instance of ast::LagStatement.
bool is_constant_statement() const noexcept override
Check if the ast node is an instance of ast::ConstantStatement.
const NameVector & get_solvefor() const noexcept
Getter for member variable LinearBlock::solvefor.
GlobalVarVector::const_iterator insert_global_var(GlobalVarVector::const_iterator position, const std::shared_ptr< GlobalVar > &n)
Insert member to variables.
LocalListStatement * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represents SECTION variables statement in NMODL.
type of ast::WrappedExpression
type of ast::NrnStateBlock
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Expression > & get_value() const noexcept
Getter for member variable Watch::value.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Name > name
Name of the discrete block.
static const std::string BATypeNames[]
string representation of ast::BAType
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_setup_x_block() const noexcept
Getter for member variable EigenLinearSolverBlock::setup_x_block.
bool is_unary_operator() const noexcept override
Check if the ast node is an instance of ast::UnaryOperator.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Unit > unit
TODO.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable Match::name.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< Name > & get_name2() const noexcept
Getter for member variable PartialBoundary::name2.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
bool is_non_linear_block() const noexcept override
Check if the ast node is an instance of ast::NonLinearBlock.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
bool is_reaction_operator() const noexcept override
Check if the ast node is an instance of ast::ReactionOperator.
const SteppedVector & get_statements() const noexcept
Getter for member variable StepBlock::statements.
AssignedDefinitionVector::const_iterator insert_assigned_definition(AssignedDefinitionVector::const_iterator position, const std::shared_ptr< AssignedDefinition > &n)
Insert member to definitions.
const std::shared_ptr< StatementBlock > & get_finalize_block() const noexcept
Getter for member variable EigenLinearSolverBlock::finalize_block.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Double * clone() const override
Return a copy of the current node.
virtual Block * clone() const override
Return a copy of the current node.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::FunctionCall
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable DiscreteBlock::name.
type of ast::EigenLinearSolverBlock
AstNodeType
Enum type for every AST node type.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
UnaryOp
enum type for unary operators
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
virtual void accept(visitor::Visitor &v) override
accept (or visit) the current AST node using provided visitor
std::shared_ptr< SolveBlock > solve_block
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Limits * clone() const override
Return a copy of the current node.
ExpressionStatement * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > name
Name of the non-linear block.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
bool is_param_assign() const noexcept override
Check if the ast node is an instance of ast::ParamAssign.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Compartment * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Name > name
Name of the linear block.
const NonspecificCurVarVector & get_currents() const noexcept
Getter for member variable Nonspecific::currents.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Unit > unit
Unit if specified.
Represent token returned by scanner.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
Range * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_neuron_block() const noexcept override
Check if the ast node is an instance of ast::NeuronBlock.
const std::shared_ptr< StatementBlock > & get_finalize_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::finalize_block.
Represents a LAG statement in the mod file.
Base class for all Abstract Syntax Tree node types.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Integer > with
an increment factor
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
bool is_watch() const noexcept override
Check if the ast node is an instance of ast::Watch.
const std::shared_ptr< Unit > & get_unit2() const noexcept
Getter for member variable FactorDef::unit2.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable ParamAssign::unit.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable IfStatement::statement_block.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represents LINEAR block in the NMODL.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
DerivimplicitCallback * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
Represents SUFFIX statement in NMODL.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
PartialEquation * clone() const override
Return a copy of the current node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
static const std::string BinaryOpNames[]
string representation of ast::BinaryOp
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< ThreadsafeVar > > ThreadsafeVarVector
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
DerivativeBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
bool is_ba_block() const noexcept override
Check if the ast node is an instance of ast::BABlock.
std::vector< std::shared_ptr< PointerVar > > PointerVarVector
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable ForNetcon::parameters.
type of ast::ForAllStatement
const std::shared_ptr< Expression > & get_length() const noexcept
Getter for member variable IndexedName::length.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable FactorDef::name.
std::shared_ptr< Expression > increment
TODO.
Represents TABLE statement in NMODL.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Expression > & get_condition() const noexcept
Getter for member variable ElseIfStatement::condition.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const ParamAssignVector & get_statements() const noexcept
Getter for member variable ParamBlock::statements.
std::shared_ptr< StatementBlock > statement_block
TODO.
bool is_partial_equation() const noexcept override
Check if the ast node is an instance of ast::PartialEquation.
Represent a callback to NEURON's derivimplicit solver.
std::shared_ptr< ModToken > token
token with location information
Represent queue statement in NMODL.
bool is_for_netcon() const noexcept override
Check if the ast node is an instance of ast::ForNetcon.
std::shared_ptr< Expression > lhs
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_react_var_name() const noexcept override
Check if the ast node is an instance of ast::ReactVarName.
const std::shared_ptr< Name > & get_type() const noexcept
Getter for member variable Suffix::type.
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable FunctionTableBlock::parameters.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
NonLinEquation * clone() const override
Return a copy of the current node.
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
NodeVector blocks
Vector of top level blocks in the mod file.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Number > & get_from() const noexcept
Getter for member variable AssignedDefinition::from.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Integer > value
Value of the macro.
std::shared_ptr< String > value
Value of name.
type of ast::PartialBlock
Float * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Identifier > name
TODO.
type of ast::BreakpointBlock
void set_token(const ModToken &tok)
Set token for the current ast node.
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > expression
TODO.
std::shared_ptr< Expression > expression
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ElseIfStatementVector & get_elseifs() const noexcept
Getter for member variable IfStatement::elseifs.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< StatementBlock > initialize_block
Statement block to be executed before calling newton solver.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_match_block() const noexcept override
Check if the ast node is an instance of ast::MatchBlock.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Name > & get_type() const noexcept
Getter for member variable Valence::type.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::ExpressionStatement
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_functor_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::functor_block.
const std::shared_ptr< StatementBlock > & get_ifsolerr() const noexcept
Getter for member variable SolveBlock::ifsolerr.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_queue_expression_type() const noexcept override
Check if the ast node is an instance of ast::QueueExpressionType.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
WatchStatement * clone() const override
Return a copy of the current node.
bool is_lin_equation() const noexcept override
Check if the ast node is an instance of ast::LinEquation.
type of ast::IndependentBlock
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
External * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
type of ast::LocalListStatement
type of ast::ReactionStatement
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable DerivativeBlock::statement_block.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
type of ast::ElseIfStatement
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > left_linxpression
TODO.
void negate() override
Negate the value of current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
ConstructorBlock * clone() const override
Return a copy of the current node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ConstructorBlock::statement_block.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable PlotVar::name.
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
Represents specific element of an array variable.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< String > value
Name of prime variable.
QueueStatement * clone() const override
Return a copy of the current node.
std::shared_ptr< Integer > value
TODO.
NonspecificCurVar * clone() const override
Return a copy of the current node.
std::shared_ptr< Integer > n_state_vars
number of state vars used in solve
bool is_before_block() const noexcept override
Check if the ast node is an instance of ast::BeforeBlock.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_partial_block() const noexcept override
Check if the ast node is an instance of ast::PartialBlock.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
bool is_number() const noexcept override
Check if the ast node is an instance of ast::Number.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const std::shared_ptr< StatementBlock > & get_variable_block() const noexcept
Getter for member variable EigenLinearSolverBlock::variable_block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable NeuronBlock::statement_block.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable FunctionBlock::parameters.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
bool is_derivimplicit_callback() const noexcept override
Check if the ast node is an instance of ast::DerivimplicitCallback.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
bool is_else_if_statement() const noexcept override
Check if the ast node is an instance of ast::ElseIfStatement.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
LocalVar * clone() const override
Return a copy of the current node.
ElectrodeCurVar * clone() const override
Return a copy of the current node.
Represents a BREAKPOINT block in NMODL.
BAType get_value() const noexcept
Getter for member variable BABlockType::value.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< QueueExpressionType > qtype
queue type (put/get)
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
type of ast::UnaryOperator
bool is_non_lin_equation() const noexcept override
Check if the ast node is an instance of ast::NonLinEquation.
virtual const ArgumentVector & get_parameters() const
Match * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Expression > condition
TODO.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represents a block to be executed before or after another block.
std::shared_ptr< ConstantVar > constant
single constant variable
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ConstantVar::name.
ElectrodeCurVarVector currents
Vector of electrode current variables.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Name > name
Variable name.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
ArgumentVector parameters
Vector of the parameters.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< PlotDeclaration > & get_plot() const noexcept
Getter for member variable PlotBlock::plot.
std::string value
Value of string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< StatementBlock > update_states_block
update back states from X
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Name > name
TODO.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable FunctionBlock::statement_block.
const ThreadsafeVarVector & get_variables() const noexcept
Getter for member variable ThreadSafe::variables.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Expression > & get_to() const noexcept
Getter for member variable FromStatement::to.
std::shared_ptr< StatementBlock > setup_x_block
update X from states
VarName * clone() const override
Return a copy of the current node.
Represent CONSERVE statement in NMODL.
const StatementVector & get_solve_statements() const noexcept
Getter for member variable NrnStateBlock::solve_statements.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_double() const noexcept override
Check if the ast node is an instance of ast::Double.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Name > name1
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable WriteIonVar::name.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable BbcorePointerVar::name.
ConductanceHint * clone() const override
Return a copy of the current node.
std::shared_ptr< Double > value
Value of new timestep.
BreakpointBlock * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Base class for all expressions in the NMODL.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Number > & get_value() const noexcept
Getter for member variable ParamAssign::value.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable DestructorBlock::statement_block.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Unit > unit
Unit for the variable.
bool is_while_statement() const noexcept override
Check if the ast node is an instance of ast::WhileStatement.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const SectionVarVector & get_sections() const noexcept
Getter for member variable Section::sections.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
bool is_pointer() const noexcept override
Check if the ast node is an instance of ast::Pointer.
Represents an INCLUDE statement in NMODL.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
Represent MUTEXLOCK statement in NMODL.
Represents binary expression in the NMODL.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< String > & get_value() const noexcept
Getter for member variable Name::value.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
TableStatement * clone() const override
Return a copy of the current node.
bool is_double_unit() const noexcept override
Check if the ast node is an instance of ast::DoubleUnit.
Wrap any other expression type.
bool is_extern_var() const noexcept override
Check if the ast node is an instance of ast::ExternVar.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Name > name
Name of the macro.
std::shared_ptr< Identifier > name
TODO.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable IndependentDefinition::unit.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
ReactionOp
enum type used for Reaction statement
std::vector< std::shared_ptr< Statement > > StatementVector
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::ReactVarName
const std::shared_ptr< Double > & get_min() const noexcept
Getter for member variable Limits::min.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
double to_double() override
Return value of the current ast node as double.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
FirstLastType
enum type for partial equation types
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string eval() const
Return enum value in string form.
LinearBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Name > & get_steadystate() const noexcept
Getter for member variable SolveBlock::steadystate.
Represents a C code block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< String > & get_ontology_id() const noexcept
Getter for member variable Useion::ontology_id.
std::shared_ptr< ModToken > token
token with location information
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
EigenLinearSolverBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Number > from
TODO.
bool is_global() const noexcept override
Check if the ast node is an instance of ast::Global.
const std::shared_ptr< String > & get_filename() const noexcept
Getter for member variable Include::filename.
Operator used in ast::BinaryExpression.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Integer > order
order of ODE
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represent solution of a block in the AST.
std::shared_ptr< Expression > reaction1
TODO.
std::vector< std::shared_ptr< ParamAssign > > ParamAssignVector
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Number > & get_value() const noexcept
Getter for member variable ConstantVar::value.
Represents POINTER statement in NMODL.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::ConstantStatement
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable Stepped::name.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Integer > & get_with() const noexcept
Getter for member variable IndependentDefinition::with.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Expression > & get_expr() const noexcept
Getter for member variable Conserve::expr.
UnaryOperator * clone() const override
Return a copy of the current node.
const std::shared_ptr< Double > & get_value() const noexcept
Getter for member variable Valence::value.
ReactionOperator * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
ReactionOp get_value() const noexcept
Getter for member variable ReactionOperator::value.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< String > & get_name() const noexcept
Getter for member variable Unit::name.
std::vector< std::shared_ptr< RangeVar > > RangeVarVector
const std::shared_ptr< Integer > & get_index() const noexcept
Getter for member variable PlotVar::index.
const std::shared_ptr< String > & get_title() const noexcept
Getter for member variable Model::title.
bool is_nrn_state_block() const noexcept override
Check if the ast node is an instance of ast::NrnStateBlock.
type of ast::ConstantBlock
const NameVector & get_depend_vars() const noexcept
Getter for member variable TableStatement::depend_vars.
ReadIonVarVector readlist
Variables being read.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< Integer > & get_length() const noexcept
Getter for member variable AssignedDefinition::length.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable Define::name.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_assigned_definition() const noexcept override
Check if the ast node is an instance of ast::AssignedDefinition.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< VarName > & get_name() const noexcept
Getter for member variable ReactVarName::name.
Define * clone() const override
Return a copy of the current node.
std::shared_ptr< Block > node_to_solve
Block to be solved (typically derivative)
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Name > name
TODO.
Represents GLOBAL statement in NMODL.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
IndexedName * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::vector< T >::iterator const_iter_cast(std::vector< T > &v, typename std::vector< T >::const_iterator iter)
Return non-const iterator corresponding to the const_iterator in a vector.
type of ast::ElseStatement
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represents a AFTER block in NMODL.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable AssignedDefinition::name.
std::shared_ptr< ModToken > token
token with location information
Represents a CONSTRUCTOR block in the NMODL.
const std::shared_ptr< Number > & get_to() const noexcept
Getter for member variable AssignedDefinition::to.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable DiscreteBlock::statement_block.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< PlotDeclaration > plot
Vector of plot variables.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable ProtectStatement::expression.
Represent a single variable of type BBCOREPOINTER.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_destructor_block() const noexcept override
Check if the ast node is an instance of ast::DestructorBlock.
std::shared_ptr< Expression > expression
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_number_range() const noexcept override
Check if the ast node is an instance of ast::NumberRange.
std::vector< std::shared_ptr< Node > > NodeVector
const std::shared_ptr< Unit > & get_unit1() const noexcept
Getter for member variable UnitDef::unit1.
Represents a INITIAL block in the NMODL.
Include * clone() const override
Return a copy of the current node.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable ParenExpression::expression.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< String > statement
C code as a string.
std::shared_ptr< Unit > unit
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void negate() override
Negate the value of current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Name > name
Name of the derivative block.
std::shared_ptr< Expression > react
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable Argument::unit.
void set_token(const ModToken &tok)
Set token for the current ast node.
const VarNameVector & get_variables() const noexcept
Getter for member variable Sens::variables.
const std::shared_ptr< StatementBlock > & get_update_states_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::update_states_block.
const RangeVarVector & get_variables() const noexcept
Getter for member variable Range::variables.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_limits() const noexcept override
Check if the ast node is an instance of ast::Limits.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_update_states_block() const noexcept
Getter for member variable EigenLinearSolverBlock::update_states_block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable KineticBlock::name.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ElseStatement::statement_block.
Boolean * clone() const override
Return a copy of the current node.
symtab::ModelSymbolTable * get_model_symbol_table()
Return global symbol table for the mod file.
std::shared_ptr< Unit > unit
TODO.
bool is_reset() const noexcept override
Check if the ast node is an instance of ast::Reset.
const std::shared_ptr< Name > & get_name1() const noexcept
Getter for member variable PartialEquation::name1.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Integer > & get_value() const noexcept
Getter for member variable ReactVarName::value.
std::shared_ptr< Name > name
TODO.
bool is_block() const noexcept override
Check if the ast node is an instance of ast::Block.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Integer > & get_n_state_vars() const noexcept
Getter for member variable EigenLinearSolverBlock::n_state_vars.
Represent statement in CONSTANT block of NMODL.
std::shared_ptr< Double > max
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::NonLinearBlock
const std::shared_ptr< Expression > & get_condition() const noexcept
Getter for member variable IfStatement::condition.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
bool is_partial_boundary() const noexcept override
Check if the ast node is an instance of ast::PartialBoundary.
Represents top level AST node for whole NMODL input.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_queue_statement() const noexcept override
Check if the ast node is an instance of ast::QueueStatement.
AssignedDefinition * clone() const override
Return a copy of the current node.
NonLinearBlock * clone() const override
Return a copy of the current node.
OntologyStatement * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
IfStatement * clone() const override
Return a copy of the current node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
FunctionCall * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
std::shared_ptr< Expression > from
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Expression > & get_reaction2() const noexcept
Getter for member variable ReactionStatement::reaction2.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_name() const noexcept override
Check if the ast node is an instance of ast::Name.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represents a STEPPED block in the NMODL.
const std::shared_ptr< Name > & get_ion() const noexcept
Getter for member variable ConductanceHint::ion.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
String * clone() const override
Return a copy of the current node.
Valence * clone() const override
Return a copy of the current node.
Pointer * clone() const override
Return a copy of the current node.
std::shared_ptr< Expression > to
TODO.
bool is_global_var() const noexcept override
Check if the ast node is an instance of ast::GlobalVar.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > expression
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Boolean > & get_gt() const noexcept
Getter for member variable FactorDef::gt.
PlotVarVector variables
TODO.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
ConstantBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Number > from
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< StatementBlock > functor_block
odes as functor for eigen
NameVector table_vars
Variables in the table.
ReadIonVar * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > name
TODO.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AssignedDefinitionVector definitions
Vector of state variables.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable NonspecificCurVar::name.
LinEquation * clone() const override
Return a copy of the current node.
BinaryExpression * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_binary_operator() const noexcept override
Check if the ast node is an instance of ast::BinaryOperator.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Integer > at
Value specified with @
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ReadIonVar::name.
LocalVarVector::const_iterator insert_local_var(LocalVarVector::const_iterator position, const std::shared_ptr< LocalVar > &n)
Insert member to variables.
std::string value
Value of float.
const std::shared_ptr< Name > & get_name3() const noexcept
Getter for member variable PartialEquation::name3.
virtual Identifier * clone() const override
Return a copy of the current node.
ArgumentVector parameters
Vector of the parameters.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
FunctionTableBlock * clone() const override
Return a copy of the current node.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable LagStatement::name.
WatchVector statements
Vector of watch statements.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
Represent CONSTANT block in the mod file.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< Number > > NumberVector
bool is_useion() const noexcept override
Check if the ast node is an instance of ast::Useion.
void set_token(const ModToken &tok)
Set token for the current ast node.
Represents a ASSIGNED block in the NMODL.
const std::shared_ptr< Name > & get_conductance() const noexcept
Getter for member variable ConductanceHint::conductance.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Represents RANGE variables statement in NMODL.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Name > & get_block_name() const noexcept
Getter for member variable SolveBlock::block_name.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable DoubleUnit::unit.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
BABlock * clone() const override
Return a copy of the current node.
type of ast::PartialBoundary
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
bool is_kinetic_block() const noexcept override
Check if the ast node is an instance of ast::KineticBlock.
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const GlobalVarVector & get_variables() const noexcept
Getter for member variable Global::variables.
type of ast::ProtectStatement
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_identifier() const noexcept override
Check if the ast node is an instance of ast::Identifier.
Represents a BEFORE block in NMODL.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
Represent symbol table for a NMODL block.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< StatementBlock > variable_block
Statements to be declared in the functor.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable UnaryExpression::expression.
encapsulates everything related to NMODL code generation framework
const std::shared_ptr< Integer > & get_n_state_vars() const noexcept
Getter for member variable EigenNewtonSolverBlock::n_state_vars.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable FunctionCall::name.
std::shared_ptr< ModToken > token
token with location information
ThreadsafeVarVector variables
Vector of thread safe variables.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Expression > condition
TODO.
bool is_initial_block() const noexcept override
Check if the ast node is an instance of ast::InitialBlock.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > name
Name of the channel.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< PrimeName > prime
TODO.
const UnaryOperator & get_op() const noexcept
Getter for member variable UnaryExpression::op.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::vector< std::shared_ptr< ElseIfStatement > > ElseIfStatementVector
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable NonLinearBlock::name.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< Expression > expression
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
ElseStatement * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > name
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_independent_definition() const noexcept override
Check if the ast node is an instance of ast::IndependentDefinition.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
IndependentBlock * clone() const override
Return a copy of the current node.
const IndependentDefinitionVector & get_definitions() const noexcept
Getter for member variable IndependentBlock::definitions.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ForNetcon::statement_block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Boolean > sweep
TODO.
std::shared_ptr< Name > name
Name of the procedure.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< Name > > NameVector
IndependentDefinition * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > block_name
Name of the block to solve.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
Watch * clone() const override
Return a copy of the current node.
BinaryOperator * clone() const override
Return a copy of the current node.
double to_double() override
Return value of the current ast node as double.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Represents DERIVATIVE block in the NMODL.
std::shared_ptr< StatementBlock > update_states_block
update back states from X
ProtectStatement * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Expression > expression
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
FactorDef * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Unit > unit1
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
bool is_threadsafe_var() const noexcept override
Check if the ast node is an instance of ast::ThreadsafeVar.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Expression > expr
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ExpressionVector & get_arguments() const noexcept
Getter for member variable FunctionCall::arguments.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< Identifier > name
Name of array variable.
WhileStatement * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represents an argument to functions and procedures.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::InitialBlock
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
Useion * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< Argument > > ArgumentVector
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ForAllStatement::name.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< LocalVar > > LocalVarVector
ArgumentVector parameters
Arguments to the for netcon block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
bool is_stepped() const noexcept override
Check if the ast node is an instance of ast::Stepped.
std::shared_ptr< ModToken > token
token with location information
std::vector< std::shared_ptr< GlobalVar > > GlobalVarVector
const NumberVector & get_values() const noexcept
Getter for member variable Stepped::values.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable LonDifuse::name.
bool is_electrode_cur_var() const noexcept override
Check if the ast node is an instance of ast::ElectrodeCurVar.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::string value
Value of double.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
ExternVarVector variables
Vector of external variables.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
type of ast::FromStatement
bool is_linear_block() const noexcept override
Check if the ast node is an instance of ast::LinearBlock.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable InitialBlock::statement_block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Identifier > name
Name of the argument.
QueueType
enum type for queue types
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::NonspecificCurVar
const std::shared_ptr< Expression > & get_react() const noexcept
Getter for member variable Conserve::react.
std::shared_ptr< Expression > expression
TODO.
type of ast::FunctionBlock
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
bool is_procedure_block() const noexcept override
Check if the ast node is an instance of ast::ProcedureBlock.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const std::string & get_value() const noexcept
Getter for member variable String::value.
const WatchVector & get_statements() const noexcept
Getter for member variable WatchStatement::statements.
std::shared_ptr< Number > start
TODO.
MatchBlock * clone() const override
Return a copy of the current node.
const std::shared_ptr< Unit > & get_unit2() const noexcept
Getter for member variable UnitDef::unit2.
WriteIonVarVector writelist
Variables being written.
const std::shared_ptr< FirstLastTypeIndex > & get_index() const noexcept
Getter for member variable PartialBoundary::index.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::vector< std::shared_ptr< Match > > MatchVector
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ProcedureBlock::statement_block.
PlotVar * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
FirstLastType get_value() const noexcept
Getter for member variable FirstLastTypeIndex::value.
std::shared_ptr< Unit > unit2
TODO.
NodeVector::const_iterator insert_node(NodeVector::const_iterator position, const std::shared_ptr< Node > &n)
Insert member to blocks.
VarNameVector variables
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_electrode_current() const noexcept override
Check if the ast node is an instance of ast::ElectrodeCurrent.
Represents a float variable.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
ParamAssignVector statements
Vector of parameters.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_nonspecific_cur_var() const noexcept override
Check if the ast node is an instance of ast::NonspecificCurVar.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Verbatim * clone() const override
Return a copy of the current node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const std::shared_ptr< Number > & get_from() const noexcept
Getter for member variable IndependentDefinition::from.
FirstLastTypeIndex * clone() const override
Return a copy of the current node.
const std::shared_ptr< Name > & get_name2() const noexcept
Getter for member variable PartialEquation::name2.
bool is_section() const noexcept override
Check if the ast node is an instance of ast::Section.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represent linear solver solution block based on Eigen.
bool is_verbatim() const noexcept override
Check if the ast node is an instance of ast::Verbatim.
RangeVarVector variables
Vector of range variables.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
LocalVarVector variables
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Number > min
TODO.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::vector< std::shared_ptr< VarName > > VarNameVector
std::shared_ptr< PlotVar > name
TODO.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
const LocalVarVector & get_variables() const noexcept
Getter for member variable LocalListStatement::variables.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable FunctionTableBlock::name.
std::shared_ptr< Identifier > name
Name of variable.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Unit > & get_unit1() const noexcept
Getter for member variable FactorDef::unit1.
bool is_constructor_block() const noexcept override
Check if the ast node is an instance of ast::ConstructorBlock.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
Global * clone() const override
Return a copy of the current node.
std::shared_ptr< Expression > lhs
LHS of the binary expression.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const PointerVarVector & get_variables() const noexcept
Getter for member variable Pointer::variables.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_if_statement() const noexcept override
Check if the ast node is an instance of ast::IfStatement.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< Expression > & get_to() const noexcept
Getter for member variable TableStatement::to.
std::vector< std::shared_ptr< ReadIonVar > > ReadIonVarVector
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Expression > value
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
int value
Value of integer.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
Represents an integer variable.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
bool is_function_block() const noexcept override
Check if the ast node is an instance of ast::FunctionBlock.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
std::shared_ptr< ModToken > token
token with location information
ExpressionVector definitions
Vector of unit statements.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
BinaryOp get_value() const noexcept
Getter for member variable BinaryOperator::value.
const std::shared_ptr< Expression > & get_left_linxpression() const noexcept
Getter for member variable LinEquation::left_linxpression.
std::vector< std::shared_ptr< PlotVar > > PlotVarVector
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Identifier > name
Name of the variable (TODO)
void set_token(const ModToken &tok)
Set token for the current ast node.
PlotBlock * clone() const override
Return a copy of the current node.
const NodeVector & get_blocks() const noexcept
Getter for member variable Include::blocks.
Represents a DESTRUCTOR block in the NMODL.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable FromStatement::name.
ParamAssign * clone() const override
Return a copy of the current node.
const ElectrodeCurVarVector & get_currents() const noexcept
Getter for member variable ElectrodeCurrent::currents.
void set_token(const ModToken &tok)
Set token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Name > & get_name1() const noexcept
Getter for member variable PartialBoundary::name1.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
Represent SENS statement in NMODL.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const std::shared_ptr< BABlock > & get_bablock() const noexcept
Getter for member variable AfterBlock::bablock.
const std::shared_ptr< String > & get_value() const noexcept
Getter for member variable PrimeName::value.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::BbcorePointerVar
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
virtual Statement * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable PartialBlock::statement_block.
std::shared_ptr< String > ontology_id
Ontology name.
bool is_statement() const noexcept override
Check if the ast node is an instance of ast::Statement.
bool is_wrapped_expression() const noexcept override
Check if the ast node is an instance of ast::WrappedExpression.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_nonspecific() const noexcept override
Check if the ast node is an instance of ast::Nonspecific.
bool is_constant_var() const noexcept override
Check if the ast node is an instance of ast::ConstantVar.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Unit > unit
Unit of the argument.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< QueueExpressionType > & get_qtype() const noexcept
Getter for member variable QueueStatement::qtype.
std::shared_ptr< StatementBlock > statement_block
TODO.
bool is_function_call() const noexcept override
Check if the ast node is an instance of ast::FunctionCall.
std::shared_ptr< Expression > expression2
TODO.
UnitState * clone() const override
Return a copy of the current node.
ConstantStatement * clone() const override
Return a copy of the current node.
std::shared_ptr< Expression > expression
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Integer > & get_value() const noexcept
Getter for member variable Define::value.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const BbcorePointerVarVector & get_variables() const noexcept
Getter for member variable BbcorePointer::variables.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_discrete_block() const noexcept override
Check if the ast node is an instance of ast::DiscreteBlock.
bool is_bbcore_pointer() const noexcept override
Check if the ast node is an instance of ast::BbcorePointer.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
bool is_section_var() const noexcept override
Check if the ast node is an instance of ast::SectionVar.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Type to represent different block types for before/after block.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
NeuronBlock * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::vector< std::shared_ptr< BbcorePointerVar > > BbcorePointerVarVector
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_model() const noexcept override
Check if the ast node is an instance of ast::Model.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Identifier > name
TODO.
const std::shared_ptr< String > & get_statement() const noexcept
Getter for member variable Verbatim::statement.
std::shared_ptr< Integer > length
Length in case of array.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable Useion::name.
Sens * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< StatementBlock > finalize_block
Statement block to be executed after calling linear solver.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable PointerVar::name.
const std::shared_ptr< Double > & get_max() const noexcept
Getter for member variable Limits::max.
Represents the coreneuron nrn_state callback function.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ForAllStatement::statement_block.
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< String > filename
path to the file to include
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable VarName::name.
std::shared_ptr< ModToken > token
token with location information
bool is_range() const noexcept override
Check if the ast node is an instance of ast::Range.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represents a prime variable (for ODE)
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AfterBlock * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
MutexUnlock * clone() const override
Return a copy of the current node.
NameVector solvefor
Name of the integration method.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
BinaryOperator op
Operator.
std::shared_ptr< Expression > expression1
TODO.
type of ast::ProcedureBlock
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
Represents BBCOREPOINTER statement in NMODL.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::BbcorePointer
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Expression > & get_index() const noexcept
Getter for member variable VarName::index.
bool is_define() const noexcept override
Check if the ast node is an instance of ast::Define.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< String > title
TODO.
bool is_compartment() const noexcept override
Check if the ast node is an instance of ast::Compartment.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ExternVarVector & get_variables() const noexcept
Getter for member variable External::variables.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::ThreadsafeVar
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Double > value
TODO.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
ArgumentVector parameters
Parameters to the net receive block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable PartialBoundary::name.
int value
Value of boolean.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
Reset * clone() const override
Return a copy of the current node.
const AssignedDefinitionVector & get_definitions() const noexcept
Getter for member variable StateBlock::definitions.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > reaction2
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const WriteIonVarVector & get_writelist() const noexcept
Getter for member variable Useion::writelist.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable FunctionTableBlock::unit.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
Represents differential equation in DERIVATIVE block.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Integer * clone() const override
Return a copy of the current node.
type of ast::QueueStatement
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable AssignedDefinition::unit.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable FromStatement::statement_block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
SectionVarVector sections
Vector of section variables.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable PartialBoundary::expression.
const std::shared_ptr< Number > & get_start() const noexcept
Getter for member variable IndependentDefinition::start.
type of ast::UnaryExpression
bool is_protect_statement() const noexcept override
Check if the ast node is an instance of ast::ProtectStatement.
DoubleUnit * clone() const override
Return a copy of the current node.
type of ast::QueueExpressionType
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Name > & get_byname() const noexcept
Getter for member variable LagStatement::byname.
type of ast::WhileStatement
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ThreadsafeVar::name.
BbcorePointer * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_update_dt() const noexcept override
Check if the ast node is an instance of ast::UpdateDt.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_match() const noexcept override
Check if the ast node is an instance of ast::Match.
bool is_eigen_newton_solver_block() const noexcept override
Check if the ast node is an instance of ast::EigenNewtonSolverBlock.
Represent LONGITUDINAL_DIFFUSION statement in NMODL.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::vector< std::shared_ptr< IndependentDefinition > > IndependentDefinitionVector
bool is_unit() const noexcept override
Check if the ast node is an instance of ast::Unit.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::PartialEquation
ElseIfStatement * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< PrimeName > & get_prime() const noexcept
Getter for member variable PartialEquation::prime.
Stepped * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
NameVector depend_vars
dependent variables
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Valence > & get_valence() const noexcept
Getter for member variable Useion::valence.
Represents a boolean variable.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_terminal_block() const noexcept override
Check if the ast node is an instance of ast::TerminalBlock.
QueueType get_value() const noexcept
Getter for member variable QueueExpressionType::value.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< VarName > name
TODO.
LagStatement * clone() const override
Return a copy of the current node.
BABlockType * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > del2
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AssignedDefinitionVector definitions
Vector of assigned variables.
type of ast::LagStatement
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Double > & get_value() const noexcept
Getter for member variable FactorDef::value.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
bool is_sens() const noexcept override
Check if the ast node is an instance of ast::Sens.
const std::shared_ptr< Integer > & get_order() const noexcept
Getter for member variable PrimeName::order.
void set_token(const ModToken &tok)
Set token for the current ast node.
NonspecificCurVarVector currents
Vector of non specific variables.
Section * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_external() const noexcept override
Check if the ast node is an instance of ast::External.
std::shared_ptr< ModToken > token
token with location information
ThreadSafe * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
type of ast::PlotDeclaration
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< PlotVar > & get_name() const noexcept
Getter for member variable PlotDeclaration::name.
GlobalVar * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ExternVar::name.
bool is_float() const noexcept override
Check if the ast node is an instance of ast::Float.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const NameVector & get_solvefor() const noexcept
Getter for member variable NonLinearBlock::solvefor.
bool is_unit_block() const noexcept override
Check if the ast node is an instance of ast::UnitBlock.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represents CONDUCTANCE statement in NMODL.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_pointer_var() const noexcept override
Check if the ast node is an instance of ast::PointerVar.
std::shared_ptr< StatementBlock > statement_block
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
bool is_plot_var() const noexcept override
Check if the ast node is an instance of ast::PlotVar.
std::shared_ptr< ModToken > token
token with location information
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
virtual Expression * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > name
TODO.
WriteIonVar * clone() const override
Return a copy of the current node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::ParenExpression
std::shared_ptr< Number > to
TODO.
const std::shared_ptr< Expression > & get_linxpression() const noexcept
Getter for member variable LinEquation::linxpression.
std::shared_ptr< Double > value
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
StepBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ElectrodeCurVar::name.
const ConstantStatementVector & get_statements() const noexcept
Getter for member variable ConstantBlock::statements.
SolveBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
PlotDeclaration * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
PrimeName * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
DestructorBlock * clone() const override
Return a copy of the current node.
Name * clone() const override
Return a copy of the current node.
const std::shared_ptr< ConstantVar > & get_constant() const noexcept
Getter for member variable ConstantStatement::constant.
Represent NEURON block in the mod file.
std::shared_ptr< Name > conductance
Conductance variable.
std::shared_ptr< StatementBlock > statement_block
TODO.
PointerVar * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< String > ontology_id
Ontology to indicate the chemical ion.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > name3
TODO.
std::shared_ptr< Identifier > name
Name of the variable.
bool is_solve_block() const noexcept override
Check if the ast node is an instance of ast::SolveBlock.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
NameVector solvefor
Solve for specification (TODO)
double to_double() override
Return value of the current ast node as double.
bool is_var_name() const noexcept override
Check if the ast node is an instance of ast::VarName.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const StatementVector & get_statements() const noexcept
Getter for member variable StatementBlock::statements.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
bool is_net_receive_block() const noexcept override
Check if the ast node is an instance of ast::NetReceiveBlock.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > name1
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
void negate() override
Negate the value of current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< SolveBlock > & get_solve_block() const noexcept
Getter for member variable SolutionExpression::solve_block.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ProcedureBlock::name.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Number > & get_max() const noexcept
Getter for member variable NumberRange::max.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
GlobalVarVector variables
Vector of global variables.
std::shared_ptr< ModToken > token
token with location information
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
Base class for all block scoped nodes.
const std::shared_ptr< StatementBlock > & get_initialize_block() const noexcept
Getter for member variable EigenLinearSolverBlock::initialize_block.
std::shared_ptr< Expression > node_to_solve
Block to be solved (callback node or solution node itself)
std::shared_ptr< Unit > unit
TODO.
bool is_write_ion_var() const noexcept override
Check if the ast node is an instance of ast::WriteIonVar.
std::string eval() const
Return value of the ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_include() const noexcept override
Check if the ast node is an instance of ast::Include.
std::shared_ptr< Integer > index
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable NetReceiveBlock::statement_block.
type of ast::DerivimplicitCallback
type of ast::TableStatement
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::NonLinEquation
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable LinearBlock::statement_block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > name
TODO.
PartialBoundary * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< NonspecificCurVar > > NonspecificCurVarVector
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
bool is_indexed_name() const noexcept override
Check if the ast node is an instance of ast::IndexedName.
ForNetcon * clone() const override
Return a copy of the current node.
bool is_mutex_unlock() const noexcept override
Check if the ast node is an instance of ast::MutexUnlock.
std::shared_ptr< Name > name
TODO.
std::vector< std::shared_ptr< ElectrodeCurVar > > ElectrodeCurVarVector
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::DestructorBlock
virtual std::string get_node_name() const
Return name of of the node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable KineticBlock::statement_block.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable QueueStatement::name.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::AssignedBlock
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable ProcedureBlock::unit.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
bool is_diff_eq_expression() const noexcept override
Check if the ast node is an instance of ast::DiffEqExpression.
const std::shared_ptr< Expression > & get_from() const noexcept
Getter for member variable FromStatement::from.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > type
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
FromStatement * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
Program * clone() const override
Return a copy of the current node.
const std::shared_ptr< String > & get_ontology_id() const noexcept
Getter for member variable OntologyStatement::ontology_id.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
type of ast::ConstructorBlock
const NameVector & get_table_vars() const noexcept
Getter for member variable TableStatement::table_vars.
const MatchVector & get_matchs() const noexcept
Getter for member variable MatchBlock::matchs.
std::shared_ptr< ModToken > token
token with location information
std::string eval() const
Return enum value in string form.
const std::shared_ptr< StatementBlock > & get_initialize_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::initialize_block.
const NodeVector & get_blocks() const noexcept
Getter for member variable Program::blocks.
StatementVector statements
Vector of statements.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
RangeVar * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable Suffix::name.
BbcorePointerVar * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > name2
TODO.
std::shared_ptr< ModToken > token
token with location information
AssignedBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::BinaryExpression
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Integer > with
TODO.
bool is_ba_block_type() const noexcept override
Check if the ast node is an instance of ast::BABlockType.
void set_token(const ModToken &tok)
Set token for the current ast node.
ReactVarName * clone() const override
Return a copy of the current node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable RangeVar::name.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::BinaryOperator
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
UpdateDt * clone() const override
Return a copy of the current node.
Argument * clone() const override
Return a copy of the current node.
MatchVector matchs
Vector of match statements.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable ExpressionStatement::expression.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable IndexedName::name.
Represents ELECTRODE_CURRENT variables statement in NMODL.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Integer > & get_at() const noexcept
Getter for member variable VarName::at.
NodeVector blocks
AST of the included file.
void set_token(const ModToken &tok)
Set token for the current ast node.
ParenExpression * clone() const override
Return a copy of the current node.
Auto generated AST classes declaration.
std::shared_ptr< Name > method
Name of the integration method.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::NetReceiveBlock
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_conductance_hint() const noexcept override
Check if the ast node is an instance of ast::ConductanceHint.
Base class for all AST node.
TerminalBlock * clone() const override
Return a copy of the current node.
FunctionBlock * clone() const override
Return a copy of the current node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ElseStatement > elses
TODO.
Base class for all numbers.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
bool is_breakpoint_block() const noexcept override
Check if the ast node is an instance of ast::BreakpointBlock.
SteppedVector statements
Vector of statements.
const std::shared_ptr< Double > & get_value() const noexcept
Getter for member variable DoubleUnit::value.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Valence > valence
(TODO)
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_param_block() const noexcept override
Check if the ast node is an instance of ast::ParamBlock.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool eval() const
Return value of the ast node.
IndependentDefinitionVector definitions
TODO.
std::shared_ptr< Name > macro
if integer is a macro then it's name
std::shared_ptr< Unit > unit
TODO.
bool is_unit_def() const noexcept override
Check if the ast node is an instance of ast::UnitDef.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_watch_statement() const noexcept override
Check if the ast node is an instance of ast::WatchStatement.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
ConstantStatementVector statements
Vector of constant statements.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::StatementBlock
std::vector< std::shared_ptr< Watch > > WatchVector
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
Represents NONLINEAR block in the NMODL.
void set_token(const ModToken &tok)
Set token for the current ast node.
KineticBlock * clone() const override
Return a copy of the current node.
std::string eval() const
Return enum value in string form.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable FunctionBlock::unit.
BeforeBlock * clone() const override
Return a copy of the current node.
const NameVector & get_solvefor() const noexcept
Getter for member variable KineticBlock::solvefor.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
ReactionStatement * clone() const override
Return a copy of the current node.
Represents a double variable.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable Watch::expression.
StatementBlock * clone() const override
Return a copy of the current node.
EigenNewtonSolverBlock * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_unit_state() const noexcept override
Check if the ast node is an instance of ast::UnitState.
std::shared_ptr< FirstLastTypeIndex > index
TODO.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable NonLinearBlock::statement_block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_binary_expression() const noexcept override
Check if the ast node is an instance of ast::BinaryExpression.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
ParamBlock * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
StateBlock * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Unit > unit
Unit if specified.
bool is_independent_block() const noexcept override
Check if the ast node is an instance of ast::IndependentBlock.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_local_var() const noexcept override
Check if the ast node is an instance of ast::LocalVar.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_solution_expression() const noexcept override
Check if the ast node is an instance of ast::SolutionExpression.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
Represents NONSPECIFIC_CURRENT variables statement in NMODL.
PointerVarVector variables
Vector of pointer variables.
BAType
enum type to distinguish BEFORE or AFTER blocks
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represents a DEFINE statement in NMODL.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
Represents a STATE block in the NMODL.
const std::shared_ptr< Double > & get_value() const noexcept
Getter for member variable UpdateDt::value.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Number > value
Value of the constant.
static const std::string UnitStateTypeNames[]
string representation of ast::UnitStateType
type of ast::EigenNewtonSolverBlock
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< BABlockType > & get_type() const noexcept
Getter for member variable BABlock::type.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const AssignedDefinitionVector & get_definitions() const noexcept
Getter for member variable AssignedBlock::definitions.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::DiffEqExpression
const std::shared_ptr< Expression > & get_reaction1() const noexcept
Getter for member variable ReactionStatement::reaction1.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_factor_def() const noexcept override
Check if the ast node is an instance of ast::FactorDef.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
WatchVector::const_iterator insert_watch(WatchVector::const_iterator position, const std::shared_ptr< Watch > &n)
Insert member to statements.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
bool is_from_statement() const noexcept override
Check if the ast node is an instance of ast::FromStatement.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Double > abstol
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::vector< std::shared_ptr< Expression > > ExpressionVector
bool is_valence() const noexcept override
Check if the ast node is an instance of ast::Valence.
std::shared_ptr< Name > ion
Ion name.
std::vector< std::shared_ptr< Stepped > > SteppedVector
bool is_local_list_statement() const noexcept override
Check if the ast node is an instance of ast::LocalListStatement.
std::shared_ptr< Name > name
Name of the function.
std::shared_ptr< Name > del
TODO.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Limits > limit
TODO.
Represents THREADSAFE statement in NMODL.
NetReceiveBlock * clone() const override
Return a copy of the current node.
bool is_derivative_block() const noexcept override
Check if the ast node is an instance of ast::DerivativeBlock.
std::shared_ptr< Number > max
TODO.
bool is_node() const noexcept override
Check if the ast node is an instance of ast::Node.
std::shared_ptr< ModToken > token
token with location information
BbcorePointerVarVector variables
Vector of bbcore pointer variables.
ExpressionVector arguments
TODO.
bool is_step_block() const noexcept override
Check if the ast node is an instance of ast::StepBlock.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Name > name
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
bool is_string() const noexcept override
Check if the ast node is an instance of ast::String.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< StatementBlock > statement_block
TODO.
const std::shared_ptr< Limits > & get_limit() const noexcept
Getter for member variable ParamAssign::limit.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > expression
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< StatementBlock > setup_x_block
update X from states
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Boolean > gt
Todo: Michael : rename variable gt as well.
bool is_paren_expression() const noexcept override
Check if the ast node is an instance of ast::ParenExpression.
std::shared_ptr< ModToken > token
token with location information
Represents CURIE information in NMODL.
bool is_after_block() const noexcept override
Check if the ast node is an instance of ast::AfterBlock.
std::vector< std::shared_ptr< AssignedDefinition > > AssignedDefinitionVector
std::string eval() const
Return enum value in string form.
ForAllStatement * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Number > & get_to() const noexcept
Getter for member variable IndependentDefinition::to.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable IndependentDefinition::name.
const std::shared_ptr< Expression > & get_from() const noexcept
Getter for member variable TableStatement::from.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable NetReceiveBlock::parameters.
const std::shared_ptr< Double > & get_abstol() const noexcept
Getter for member variable AssignedDefinition::abstol.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Expression > & get_expression1() const noexcept
Getter for member variable ReactionStatement::expression1.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > name
Name of the kinetic block.
std::shared_ptr< Expression > from
from value
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Name > & get_macro() const noexcept
Getter for member variable Integer::macro.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::vector< std::shared_ptr< SectionVar > > SectionVarVector
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_thread_safe() const noexcept override
Check if the ast node is an instance of ast::ThreadSafe.
bool is_eigen_linear_solver_block() const noexcept override
Check if the ast node is an instance of ast::EigenLinearSolverBlock.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Expression > & get_rhs() const noexcept
Getter for member variable NonLinEquation::rhs.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_table_statement() const noexcept override
Check if the ast node is an instance of ast::TableStatement.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< StatementBlock > & get_setup_x_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::setup_x_block.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable LocalVar::name.
std::shared_ptr< Name > name
Name of the function table block.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Expression > index
index value in case of array
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
double to_double() override
Return value of the current ast node as double.
const ReactionOperator & get_op() const noexcept
Getter for member variable ReactionStatement::op.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::string eval() const
Return value of the ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable TerminalBlock::statement_block.
std::shared_ptr< String > name
TODO.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_else_statement() const noexcept override
Check if the ast node is an instance of ast::ElseStatement.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable LinearBlock::name.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable Compartment::name.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
Conserve * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
ExternVar * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Identifier > name
Name of the variable.
Base class for all identifiers.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
UnitBlock * clone() const override
Return a copy of the current node.
ElseIfStatementVector elseifs
TODO.
std::shared_ptr< Number > value
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Block > & get_node_to_solve() const noexcept
Getter for member variable DerivimplicitCallback::node_to_solve.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > type
type of channel
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< StatementBlock > initialize_block
Statement block to be executed before calling linear solver.
const std::shared_ptr< Expression > & get_node_to_solve() const noexcept
Getter for member variable SolutionExpression::node_to_solve.
const std::shared_ptr< Name > & get_del() const noexcept
Getter for member variable PartialBoundary::del.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_reaction_statement() const noexcept override
Check if the ast node is an instance of ast::ReactionStatement.
const std::shared_ptr< ElseStatement > & get_elses() const noexcept
Getter for member variable IfStatement::elses.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< BinaryExpression > & get_expression() const noexcept
Getter for member variable DiffEqExpression::expression.
bool is_prime_name() const noexcept override
Check if the ast node is an instance of ast::PrimeName.
std::string eval() const
Return value of the ast node.
Represents block encapsulating list of statements.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable Compartment::expression.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Abstract base class for all constant visitors implementation.
std::shared_ptr< Expression > linxpression
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represent RESET statement in NMODL.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::FunctionTableBlock
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Name > & get_name3() const noexcept
Getter for member variable PartialBoundary::name3.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_suffix() const noexcept override
Check if the ast node is an instance of ast::Suffix.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::TerminalBlock
NrnStateBlock * clone() const override
Return a copy of the current node.
ProcedureBlock * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable BABlock::statement_block.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Name > name
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_method() const noexcept
Getter for member variable SolveBlock::method.
SolutionExpression * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_lon_difuse() const noexcept override
Check if the ast node is an instance of ast::LonDifuse.
virtual void visit_children(visitor::Visitor &v) override
visit children i.e.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::OntologyStatement
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
NumberRange * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_plot_block() const noexcept override
Check if the ast node is an instance of ast::PlotBlock.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
MutexLock * clone() const override
Return a copy of the current node.
type of ast::BlockComment
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_program() const noexcept override
Check if the ast node is an instance of ast::Program.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Boolean > & get_sweep() const noexcept
Getter for member variable IndependentDefinition::sweep.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable WhileStatement::statement_block.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Expression > to
to values
void set_token(const ModToken &tok)
Set token for the current ast node.
const ExpressionVector & get_definitions() const noexcept
Getter for member variable UnitBlock::definitions.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable SectionVar::name.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const std::shared_ptr< Number > & get_start() const noexcept
Getter for member variable AssignedDefinition::start.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Unit > unit1
TODO.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable DerivativeBlock::name.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::DerivativeBlock
bool is_read_ion_var() const noexcept override
Check if the ast node is an instance of ast::ReadIonVar.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable GlobalVar::name.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Expression > & get_lhs() const noexcept
Getter for member variable NonLinEquation::lhs.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const BinaryOperator & get_op() const noexcept
Getter for member variable BinaryExpression::op.
std::shared_ptr< Expression > condition
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable LonDifuse::expression.
std::shared_ptr< BinaryExpression > expression
Differential Expression.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
ArgumentVector parameters
Vector of the parameters.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const NameVector & get_names() const noexcept
Getter for member variable LonDifuse::names.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > name
Name of ion.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::ReactionOperator
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Expression > & get_expression2() const noexcept
Getter for member variable ReactionStatement::expression2.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Name > name3
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
ElectrodeCurrent * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_state_block() const noexcept override
Check if the ast node is an instance of ast::StateBlock.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Nonspecific * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
static const std::string QueueTypeNames[]
string representation of ast::QueueType
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable ProcedureBlock::parameters.
std::shared_ptr< Integer > n_state_vars
number of state vars used in solve
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
Represents EXTERNAL statement in NMODL.
std::string eval() const
Return enum value in string form.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable Stepped::unit.
const std::shared_ptr< Expression > & get_condition() const noexcept
Getter for member variable WhileStatement::condition.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Expression > & get_increment() const noexcept
Getter for member variable FromStatement::increment.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
static const std::string UnaryOpNames[]
string representation of ast::UnaryOp
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_bbcore_pointer_var() const noexcept override
Check if the ast node is an instance of ast::BbcorePointerVar.
std::shared_ptr< BABlock > bablock
Block to be called before.
bool is_for_all_statement() const noexcept override
Check if the ast node is an instance of ast::ForAllStatement.
Abstract base class for all visitors implementation.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::ElectrodeCurVar
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable ConstantVar::unit.
std::shared_ptr< Name > name
Name of the variable.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
BinaryOp
enum Type for binary operators in NMODL
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Double > min
TODO.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::string & get_value() const noexcept
Getter for member variable Float::value.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
virtual void set_name(const std::string &name)
Set name for the AST node.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable WrappedExpression::expression.
bool is_plot_declaration() const noexcept override
Check if the ast node is an instance of ast::PlotDeclaration.
const ReadIonVarVector & get_readlist() const noexcept
Getter for member variable Useion::readlist.
std::shared_ptr< StatementBlock > variable_block
Statements to be declared in the functor.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::WatchStatement
const std::shared_ptr< BABlock > & get_bablock() const noexcept
Getter for member variable BeforeBlock::bablock.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const NameVector & get_names() const noexcept
Getter for member variable Compartment::names.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
int get_value() const noexcept
Getter for member variable Integer::value.
std::shared_ptr< Number > start
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Represent COMPARTMENT statement in NMODL.
bool is_statement_block() const noexcept override
Check if the ast node is an instance of ast::StatementBlock.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable ParamAssign::name.
bool is_boolean() const noexcept override
Check if the ast node is an instance of ast::Boolean.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
Model * clone() const override
Return a copy of the current node.
std::shared_ptr< Unit > unit2
TODO.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_variable_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::variable_block.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
UnitStateType get_value() const noexcept
Getter for member variable UnitState::value.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Expression > & get_rhs() const noexcept
Getter for member variable BinaryExpression::rhs.
UnaryExpression * clone() const override
Return a copy of the current node.
LonDifuse * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string eval() const
Return enum value in string form.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable FunctionBlock::name.
std::shared_ptr< Name > name
TODO.
Represents a statement in ASSIGNED or STATE block.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::IndependentDefinition
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
Statement to indicate a change in timestep in a given block.
static const std::string FirstLastTypeNames[]
string representation of ast::FirstLastType
std::shared_ptr< BABlockType > type
Type of NMODL block.
Unit * clone() const override
Return a copy of the current node.
bool is_unary_expression() const noexcept override
Check if the ast node is an instance of ast::UnaryExpression.
std::shared_ptr< ModToken > token
token with location information
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Identifier > name
TODO.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::string & get_value() const noexcept
Getter for member variable Double::value.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
PartialBlock * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
Represents a variable in the ast::ConstantBlock.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
Suffix * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
int get_value() const noexcept
Getter for member variable Boolean::value.
bool is_constant_block() const noexcept override
Check if the ast node is an instance of ast::ConstantBlock.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > name2
TODO.
type of ast::FirstLastTypeIndex
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< StatementBlock > finalize_block
Statement block to be executed after calling newton solver.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable Argument::name.
WrappedExpression * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable BreakpointBlock::statement_block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
UnitDef * clone() const override
Return a copy of the current node.
bool is_argument() const noexcept override
Check if the ast node is an instance of ast::Argument.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
ConstantVar * clone() const override
Return a copy of the current node.
std::shared_ptr< Expression > rhs
TODO.
void negate() override
Negate the value of current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::ModelSymbolTable model_symtab
global symbol table for model
Represents a PARAMETER block in the NMODL.
type of ast::KineticBlock
bool is_integer() const noexcept override
Check if the ast node is an instance of ast::Integer.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_first_last_type_index() const noexcept override
Check if the ast node is an instance of ast::FirstLastTypeIndex.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable Match::expression.
QueueExpressionType * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
type of ast::SolutionExpression
bool is_mutex_lock() const noexcept override
Check if the ast node is an instance of ast::MutexLock.
const std::shared_ptr< Expression > & get_lhs() const noexcept
Getter for member variable BinaryExpression::lhs.
std::shared_ptr< Name > byname
Name of the variable (TODO)
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ElseIfStatement::statement_block.
int eval() const
Return value of the ast node.
virtual double to_double()
StatementVector::const_iterator insert_statement(StatementVector::const_iterator position, const std::shared_ptr< Statement > &n)
Insert member to statements.
std::string eval() const
Return enum value in string form.
bool is_conserve() const noexcept override
Check if the ast node is an instance of ast::Conserve.
std::shared_ptr< Expression > rhs
RHS of the binary expression.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represents a PLOT statement in the NMODL.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
virtual Node * clone() const override
Return a copy of the current node.
Represents a INDEPENDENT block in the NMODL.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< ConstantStatement > > ConstantStatementVector
bool is_function_table_block() const noexcept override
Check if the ast node is an instance of ast::FunctionTableBlock.
std::shared_ptr< ModToken > token
token with location information
bool is_expression_statement() const noexcept override
Check if the ast node is an instance of ast::ExpressionStatement.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Represent MUTEXUNLOCK statement in NMODL.
void set_token(const ModToken &tok)
Set token for the current ast node.
UnitStateType
enum type used for UNIT_ON or UNIT_OFF state
DiscreteBlock * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
DiffEqExpression * clone() const override
Return a copy of the current node.
Represents USEION statement in NMODL.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
bool is_assigned_block() const noexcept override
Check if the ast node is an instance of ast::AssignedBlock.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::vector< std::shared_ptr< WriteIonVar > > WriteIonVarVector
Represent WATCH statement in NMODL.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
type of ast::ElectrodeCurrent
std::shared_ptr< Number > to
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const PlotVarVector & get_variables() const noexcept
Getter for member variable PlotDeclaration::variables.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Identifier > name
TODO.
std::shared_ptr< Name > name
Name of the partial block.
bool is_range_var() const noexcept override
Check if the ast node is an instance of ast::RangeVar.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_ontology_statement() const noexcept override
Check if the ast node is an instance of ast::OntologyStatement.
type of ast::AssignedDefinition
std::shared_ptr< Unit > unit
Unit if specified.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable PartialBlock::name.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Double > value
TODO.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
InitialBlock * clone() const override
Return a copy of the current node.
SectionVar * clone() const override
Return a copy of the current node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
Represent newton solver solution block based on Eigen.
const std::shared_ptr< Name > & get_del2() const noexcept
Getter for member variable PartialBoundary::del2.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Expression > expression
Expression that is being wrapped.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Number > & get_min() const noexcept
Getter for member variable NumberRange::min.
UnaryOp get_value() const noexcept
Getter for member variable UnaryOperator::value.
StatementVector solve_statements
solve blocks to be called or generated
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
bool is_expression() const noexcept override
Check if the ast node is an instance of ast::Expression.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
virtual Number * clone() const override
Return a copy of the current node.